【发布时间】:2020-01-28 17:47:06
【问题描述】:
我使用测试容器创建了一个 Postgres 实例。容器启动,但我无法访问它。
我尝试使用 DBeaver 连接容器化数据库。 在 Eclipse 控制台中,一切似乎都很好:
01:29:34.662 [main] 调试 com.github.dockerjava.core.command.AbstrDockerCmd - Cmd:com.github.dockerjava.core.command.CreateContainerCmdImpl@73386d72[name=,hostName=,domainName=,user =,attachStdin=,attachStdout=,attachStderr=,portSpecs=,tty=,stdinOpen=,stdInOnce=,env={POSTGRES_USER=test,POSTGRES_PASSWORD=test,POSTGRES_DB=ASIGDB_TEST}
这是我的代码:
public class CustomPostgresContainer extends PostgreSQLContainer<CustomPostgresContainer>{
private static final String IMAGE_VERSION = "postgres:9.6";
private static CustomPostgresContainer customPostgresContainer;
private static final int EXPOSED_PORT = 5555;
private static final String DB_NAME = "ASIGDB_TEST";
private static final String DB_USER= "test";
private static final String DB_PASSWORD= "test";
public CustomPostgresContainer() {
super(IMAGE_VERSION);
}
public static CustomPostgresContainer getCustomPostgresContainerInstance() {
if(customPostgresContainer == null) {
return extracted().withExposedPorts(EXPOSED_PORT)
.withDatabaseName(DB_NAME)
.withUsername(DB_USER)
.withPassword(DB_PASSWORD);
}
return customPostgresContainer;
}
private static CustomPostgresContainer extracted() {
return new CustomPostgresContainer();
}
@Override
public void start() {
super.start();
}
@Override
public void stop() {
//do nothing, JVM handles shut down
}
}
我明白了:
与 localhost:5555 的连接被拒绝。检查主机名和端口是否正确,以及 postmaster 是否接受 TCP/IP 连接。
有人知道怎么回事吗?
【问题讨论】:
标签: java spring postgresql spring-boot testcontainers