使用docker compose在Gitlab CI中保留docker构建
我有一个包含三个部分的存储库:前端、管理和服务器。每个都包含自己的Dockerfile 在构建映像之后,我想添加一个管理员测试。我的测试通过了,但需要很多时间,因为它会在每个阶段从零开始构建基础图像(比如每个阶段8分钟)。这是我的使用docker compose在Gitlab CI中保留docker构建,docker,docker-compose,gitlab,Docker,Docker Compose,Gitlab,我有一个包含三个部分的存储库:前端、管理和服务器。每个都包含自己的Dockerfile 在构建映像之后,我想添加一个管理员测试。我的测试通过了,但需要很多时间,因为它会在每个阶段从零开始构建基础图像(比如每个阶段8分钟)。这是我的.gitlab ci.yml image: tmaier/docker-compose services: - docker:dind stages: - build - test build: stage: build script:
.gitlab ci.yml
image: tmaier/docker-compose
services:
- docker:dind
stages:
- build
- test
build:
stage: build
script:
- docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
- docker-compose build
- docker-compose push
test:admin:
stage: test
script:
- docker-compose -f docker-compose.yml -f docker-compose.test.yml up admin
我不太确定我是否需要在阶段之间推/拉图像,或者是否应该使用工件/缓存/任何东西。据我所知,如果我想将映像部署到另一台服务器,我只需要推/拉。但是我还添加了一个docker compose push
,它可以运行,但是Gitlab没有显示我注册表中的任何图像
我在这方面做了很多研究,但我发现的大多数示例代码都是关于单个docker容器的,它们没有使用docker compose
有什么想法吗?:) 标记您能显示文件docker-compose.yml docker-compose.test.yml吗?
可能你尝试推拉不同的图像。顺便说一句,请尝试将docker登录置于脚本之前,使其在所有作业中都有效。Gitlab目前无法在阶段之间作为工件共享docker图像。他们有一个突出的功能要求这三年 您需要将docker映像推送到docker注册表,并在需要它的后期阶段将其拉入。(或在一个阶段内完成与图像相关的所有工作)