docker容器无法在Amazon Codebuild上启动postgres服务器

时间:2018-05-21 12:55:53

标签: postgresql amazon-web-services docker aws-codepipeline aws-codebuild

我使用自定义docker容器来构建代码,该容器与Amazon codebuild集成。 AWS codebuild会旋转Docker容器并在我们提供的容器上构建代码。 我写过的容器的Dockerfile是这样的 - > Dockerfile

Docker容器应该安装Java-8,Gradle-4.7和Postgres-10。

我在本地计算机上运行Docker容器,可以看到Postgres服务正在运行。但是,在AWS codebuild上,docker容器不会启动Postgres服务器。我尝试使用buildspec.yml文件中的命令了解Postgres的状态,发现它已关闭。

以下是我在cloudwatch日志中可以看到的错误 -

May 18, 2018 9:26:33 AM org.postgresql.Driver connect
SEVERE: Connection error: 
org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

有没有人对此有任何想法? Dockerfile是否正确?

1 个答案:

答案 0 :(得分:0)

问题可能实际上是入口点(在你提到的Dockerfile中)。

CodeBuild将覆盖每次运行的入口点,这与您在本地docker run中看到的不同(您也可以使用codebuild本地代理测试此行为)

"ENTRYPOINT ["/etc/init.d/postgresql", "start"]"

你可以发布buildspec.yml文件吗?对此的简单修复是将entrypoint命令作为buildspec.yml

的一部分运行