无法从代码构建访问容器
Cannot reach containers from codebuild
我一直在从 codebuild 访问容器时遇到问题。我有一个公开的 GraphQL 服务,带有一个下游身份验证服务和一个 postgresql 数据库,它们都是通过 Docker Compose 启动的。 运行 它们并在本地测试它们工作正常,但是我无法在代码构建中获得正确的主机名组合。
如果我在 0.0.0.0:8000
处点击 GraphQL 端点,我的测试似乎能够 运行 但是一旦我的 GraphQL 容器尝试到达下游服务,我将收到连接拒绝。我已经尝试从位于 auth:8001, 0.0.0.0:8001
的 GraphQL 服务内部访问 auth 服务,暴露端口 8001
,并通过设置桥接网络。我总是收到连接被拒绝的错误。
我附上了部分代码构建日志。
有什么我可能遗漏的想法吗?
Container 2018/08/28 05:37:17 Running command docker ps CONTAINER ID
IMAGE COMMAND CREATED STATUS PORTS NAMES 6c4ab1fdc980
docker-compose_graphql "app" 1 second ago Up Less than a second
0.0.0.0:8000->8000/tcp docker-compose_graphql_1 5c665f5f812d docker-compose_auth "/bin/sh -c app" 2 seconds ago Up Less than a
second 0.0.0.0:8001->8001/tcp docker-compose_auth_1 b28148784c04
postgres:10.4 "docker-entrypoint..." 2 seconds ago Up 1 second
0.0.0.0:5432->5432/tcp docker-compose_psql_1
Container 2018/08/28 05:37:17 Running command go test ; cd ../..
Register panic: [{"message":"rpc error: code = Unavailable desc = all
SubConns are in TransientFailure, latest connection error: connection
error: desc = \"transport: Error while dialing dial tcp 0.0.0.0:8001:
connect: connection refused\"","path":
在 "host" 机器上,我暴露的 GraphQL 服务只能使用 IP 地址 0.0.0.0 访问。内部网络设置正确,每个服务都可以按预期在 <NAME>:<PORT>
访问,但是,如果出现错误,将显示 IP 地址 (172.27.0.1) 而不是主机名。
我的问题是所有内部连接还没有准备好,导致 "connection refused" 错误。 docker-compose up
之后的命令 sleep 5
让我的服务有时间在测试前完全初始化。
我一直在从 codebuild 访问容器时遇到问题。我有一个公开的 GraphQL 服务,带有一个下游身份验证服务和一个 postgresql 数据库,它们都是通过 Docker Compose 启动的。 运行 它们并在本地测试它们工作正常,但是我无法在代码构建中获得正确的主机名组合。
如果我在 0.0.0.0:8000
处点击 GraphQL 端点,我的测试似乎能够 运行 但是一旦我的 GraphQL 容器尝试到达下游服务,我将收到连接拒绝。我已经尝试从位于 auth:8001, 0.0.0.0:8001
的 GraphQL 服务内部访问 auth 服务,暴露端口 8001
,并通过设置桥接网络。我总是收到连接被拒绝的错误。
我附上了部分代码构建日志。
有什么我可能遗漏的想法吗?
Container 2018/08/28 05:37:17 Running command docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c4ab1fdc980 docker-compose_graphql "app" 1 second ago Up Less than a second 0.0.0.0:8000->8000/tcp docker-compose_graphql_1 5c665f5f812d docker-compose_auth "/bin/sh -c app" 2 seconds ago Up Less than a second 0.0.0.0:8001->8001/tcp docker-compose_auth_1 b28148784c04 postgres:10.4 "docker-entrypoint..." 2 seconds ago Up 1 second 0.0.0.0:5432->5432/tcp docker-compose_psql_1
Container 2018/08/28 05:37:17 Running command go test ; cd ../..
Register panic: [{"message":"rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = \"transport: Error while dialing dial tcp 0.0.0.0:8001: connect: connection refused\"","path":
在 "host" 机器上,我暴露的 GraphQL 服务只能使用 IP 地址 0.0.0.0 访问。内部网络设置正确,每个服务都可以按预期在 <NAME>:<PORT>
访问,但是,如果出现错误,将显示 IP 地址 (172.27.0.1) 而不是主机名。
我的问题是所有内部连接还没有准备好,导致 "connection refused" 错误。 docker-compose up
之后的命令 sleep 5
让我的服务有时间在测试前完全初始化。