![](/img/trans.png)
[英]How to run API endpoints tests with Docker-Compose in Gitlab CI/CD pipeline
[英]Run `docker compose` in GitLab pipeline
我需要将应用程序堆栈部署到 ECS。 为此,我使用了新的 Docker Compose ECS 集成(参见例如此处)。
简而言之,一切都归结为使用正确的docker context
并启动命令docker compose up
。 这很有帮助,而且非常快。
我想自动化 GitLab 管道中的部署过程。
我应该在管道中使用什么(Docker)映像才能运行新的docker compose
命令?
提前致谢。
因此,从评论中详细说明这个想法:
docker compose
二进制直接与docker
命令本身结合在一起,本质上是它的扩展。
正如我所看到的,现在有两个主要选择:
您设置了一个专用的 gitlab 运行器,它与普通的 shell 执行器一起工作。 然后在该机器上安装 docker 并根据本手册设置 compose-cli。 然后您可以使用 compose 命令开始部署。
您创建一个 docker 映像,该映像为您提供docker compose
命令。 示例 dockerfile 可能如下所示:
FROM docker
RUN apk add curl
RUN apk add tar
RUN curl -L https://github.com/docker/compose-cli/releases/download/v1.0.6/docker-linux-amd64.tar.gz -O
RUN tar xzf docker-linux-amd64.tar.gz
RUN chmod +x docker/docker
RUN ln -s /usr/local/bin/docker /usr/bin/com.docker.cli
现在,很难让 docker 守护程序可用。 但是,gitlabs dind工作流程应该是可能的。
使用docker run --rm --privileged -it <containername> sh
启动容器后,我的示例中的docker compose
命令将作为./docker compose
使用,因为我没有将新的 Z05B6053C41A2134E6ZB 二进制文件添加到任何路径 3B6053C41A2130AFD6FC3B158BDA4E6Z 但是 docker 守护程序未启动。
注意:此 Dockerfile 生成的镜像本质上只是一个修改后的 Docker-in-Docker 镜像。 所以它应该可以工作,但我无法测试它。
Docker 本身在其 docker 集线器上提供了一个图像,该集线器提供了 docker-compose 功能。 Gitlab CI 图像标签将是“docker/compose”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.