【问题标题】:Cannot reach containers from codebuild无法从 codebuild 访问容器
【发布时间】:2018-08-28 09:03:04
【问题描述】:

我在从 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 运行命令 docker ps CONTAINER ID 图像命令创建的状态端口名称 6c4ab1fdc980 docker-compose_graphql "app" 1 秒前 Up 不到一秒 0.0.0.0:8000->8000/tcp docker-compose_graphql_1 5c665f5f812d docker-compose_auth "/bin/sh -c app" 2 秒前 Up 不到一个 第二个 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 ../..

Register panic: [{"message":"rpc error: code = Unavailable desc = all SubConns 处于 TransientFailure,最新的连接错误:connection 错误:desc = \“传输:拨号时出错 dial tcp 0.0.0.0:8001: 连接:连接被拒绝\“”,“路径”:

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 有道理。我在使用“docker run --hostname ***”连接到我抛出的一个容器(出于测试目的)时也遇到了问题,并遇到了问题。更改为 --name 参数解决了我的网络问题。
    猜你喜欢
    • 2021-12-22
    • 2021-02-18
    • 2022-12-04
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2020-08-15
    相关资源
    最近更新 更多