gpt4 book ai didi

docker - 使用 docker-compose 在 Gitlab CI 中保持 docker 构建

转载 作者:行者123 更新时间:2023-12-01 01:53:45 24 4
gpt4 key购买 nike

我有一个包含三个部分的存储库:前端、管理员和服务器。每个都包含自己的 Dockerfile。

构建图像后,我想为管理员添加一个测试。我的测试通过了但需要很多时间,因为它会拉取基本镜像并在每个阶段从头开始构建所有内容(例如每个阶段 8 分钟)。这是我的 .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。

有任何想法吗? :)

最佳答案

Gitlab 目前无法将 Docker 镜像作为工件在各个阶段之间共享。 3 年来,他们对此提出了突出的功能要求。
您需要将 docker 镜像推送到 docker 注册表,并在需要它的后期阶段将其拉取。 (或者在一个阶段做所有与图像相关的事情)

关于docker - 使用 docker-compose 在 Gitlab CI 中保持 docker 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54513327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com