我正在部署两个Testcontainer,一个带有PostgreSQL映像(12.0),另一个带有Keycloak(8.0.0)。
PostgreSQL成功启动,但是当Keycloak尝试连接到PostgreSQL时,连接被拒绝。
我将所有环境变量放入Keycloak以连接到该PostgreSQL容器
withEnv("DB_VENDOR", "postgres");
withEnv("DB_DATABASE", KeycloakDS);
withEnv("DB_SCHEMA", test);
withEnv("DB_USER", postgres);
withEnv("DB_PASSWORD", keycloak);
withEnv("DB_ADDR", postgres);
withEnv("DB_PORT", ${DB_PORT});
withEnv("KEYCLOAK_USER", admin);
withEnv("KEYCLOAK_PASSWORD", admin);
其中$ {DB_PORT}是PostgreSQL部署的端口,而DB_ADDR是PostgreSQL容器在我建立的网络中拥有的别名,这两个容器都在其中。
我想念什么吗?
有人也尝试过成功吗?
提前致谢。
最佳答案
${DB_PORT}
必须为5432
,因为您直接连接到容器而不是通过裸露的端口连接。