1

我的目标:我将为触发 GA 工作流的回购提交 PR。这包括为该存储库构建 Docker 映像以及其他映像。

他们所有的图像都是通过查看他们的 repos b/c 构建的,我的团队希望避免拉取他们的图像。因此,我不能使用服务容器工作流设置,因为它需要从 Docker Hub 或 AWS ECR 中提取图像。

在运行我的 GA 工作流程时,在 docker 组合我的容器后,我无法从我的 Docker 容器的 url ( image://container-name:port/rest/of/path) 获取提要。相反,我看到了这个错误ECONNREFUSED 127.0.0.1:80

其他尝试:

  1. 使用 http://localhost:port/rest/of/path。得到同样的错误ECONNREFUSED 127.0.0.1:80
  2. 使用 Docker 容器的 IP http:docker.ip:port/rest/of/path。得到不同的错误Error: connect EHOSTUNREACH 172.18.0.6:8088 at TCPConnectWrap.afterConnect
  3. 为我的测试创建一个 Docker 镜像,添加到 docker-compose 文件中,然后重复上述步骤。同样的错误。

如果这提供了更多上下文,我在下面添加了我的 docker-compose.yml模板。除了 db 图像之外,它们每个都有一个 repo。它们相互依赖如下

容器:C -> B + A -> db

*针对C运行的测试

我开始我的 GA 工作流程,如下所示:

  1. 为C启动 PR并触发 GA 工作流
  2. 签出上述每个 repos(db 除外,这是公开的)
  3. 构建他们的每个图像,然后docker-compose up
  4. 查看我的测试存储库并针对C的 localhost url 的提要(C://C:3333/rest/of/path)运行它们。
version: "3"

services:
  db:
    image: mongo:latest
    container_name: db
  db-seed:
    image: mongo:latest
    container_name: db_seed
    links:
      - db
    volumes_from:
      - db
    command:
      /import.sh
  A:
    image: ecr-aws/A
    container_name: api
    ports:
        - 1111:1111
    env_file:
      - 'A/.env'
    depends_on: 
      - db
  B:
    image: ecr-aws/B
    container_name: B
    ports:
      - 2222:2222
    env_file:
      - 'B/.env'
    depends_on: 
      - db
  C:
    image: ecr-aws/C
    container_name: C
    ports:
      - 3333:3333
    env_file:
      - 'C/.env'
    depends_on:
      - A
4

0 回答 0