我的目标:我将为触发 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
其他尝试:
- 使用 http://localhost:port/rest/of/path。得到同样的错误
ECONNREFUSED 127.0.0.1:80
- 使用 Docker 容器的 IP http:docker.ip:port/rest/of/path。得到不同的错误
Error: connect EHOSTUNREACH 172.18.0.6:8088 at TCPConnectWrap.afterConnect
- 为我的测试创建一个 Docker 镜像,添加到 docker-compose 文件中,然后重复上述步骤。同样的错误。
如果这提供了更多上下文,我在下面添加了我的 docker-compose.yml模板。除了 db 图像之外,它们每个都有一个 repo。它们相互依赖如下
容器:C -> B + A -> db
*针对C运行的测试
我开始我的 GA 工作流程,如下所示:
- 为C启动 PR并触发 GA 工作流
- 签出上述每个 repos(db 除外,这是公开的)
- 构建他们的每个图像,然后
docker-compose up
- 查看我的测试存储库并针对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