无法通过代码构建访问容器

时间:2018-08-28 09:03:05

标签: amazon-web-services docker-compose aws-codebuild

我在从代码构建中到达容器时遇到了问题。我有一个公开的GraphQL服务以及一个下游身份验证服务和一个postgresql数据库,这些服务都是通过Docker Compose启动的。运行它们并在本地对其进行测试可以正常工作,但是我无法在代码构建中正确分配主机名。

如果我在0.0.0.0:8000处到达GraphQL端点,我的测试似乎可以运行,但是一旦GraphQL容器尝试到达下游服务,我将被拒绝连接。我尝试通过在auth:8001, 0.0.0.0:8001处的GraphQL服务内部访问auth服务,并暴露了端口8001,并设置了桥接网络。我总是收到连接被拒绝的错误。

我已经附加了部分代码构建日志。

有什么主意我可能会错过的吗?

  

容器2018/08/28 05:37:17运行命令docker ps容器ID   图像命令创建的状态端口名称6c4ab1fdc980   docker-compose_graphql“ app” 1秒前不到一秒   0.0.0.0:8000->8000/tcp docker-compose_graphql_1 5c665f5f812d docker-compose_auth“ / bin / sh -c app” 2秒前Up少于a   第二个0.0.0.0:8001->8001/tcp docker-compose_auth_1 b28148784c04   postgres:10.4“ docker-entrypoint ...” 2秒前最多1秒   0.0.0.0:5432->5432/tcp docker-compose_psql_1

     

容器2018/08/28 05:37:17运行命令go test; cd ../..

     

注册恐慌:[{“ message”:“ rpc错误:代码=不可用desc =全部   SubConns位于TransientFailure中,最新的连接错误:连接   错误:desc = \“ transport:拨打拨号tcp 0.0.0.0:8001时出错:   connect:连接被拒绝\“”,“路径”:

1 个答案:

答案 0 :(得分:0)

在“主机”计算机上,只能使用IP地址0.0.0.0来访问我公开的GraphQL服务。内部网络设置正确,可以按预期通过<NAME>:<PORT>到达每个服务,但是,如果出错,将显示IP地址(172.27.0.1)而不是主机名。

我的问题是所有内部连接尚未准备就绪,导致“连接被拒绝”错误。 sleep 5之后的docker-compose up命令使我的服务有时间在测试之前完全初始化。