gpt4 book ai didi

linux - 使用 gitlab ci docker-in-docker setup 部署 docker 容器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:00 25 4
gpt4 key购买 nike

我目前正在尝试设置一个 gitlab ci 管道。我选择了go with the Docker-in-Docker setup .我得到了我的 ci 管道来构建并将 docker 图像推送到 gitlab 的注册表,但我似乎无法使用以下配置部署它:

.gitlab-ci.yml

image: docker:stable
services:
- docker:dind

stages:
- build
- deploy

variables:
DOCKER_HOST: tcp://docker:2375
DOCKER_DRIVER: overlay2
TEST_IMAGE: registry.gitlab.com/user/repo.nl:$CI_COMMIT_REF_SLUG
RELEASE_IMAGE: registry.gitlab.com/user/repo.nl:release

before_script:
- docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- docker info

build:
stage: build
tags:
- build
script:
- docker build --pull -t $TEST_IMAGE .
- docker push $TEST_IMAGE
only:
- branches

deploy:
stage: deploy
tags:
- deploy
script:
- docker pull $TEST_IMAGE
- docker tag $TEST_IMAGE $RELEASE_IMAGE
- docker push $RELEASE_IMAGE
- docker run -d --name "review-$CI_COMMIT_REF_SLUG" -p "80:80" $RELEASE_IMAGE
only:
- master
when: manual

当我运行部署操作时,我实际上在我的日志中得到了以下反馈,但是当我去检查服务器时,没有容器在运行。

$ docker run -d --name "review-$CI_COMMIT_REF_SLUG" -p "80:80" $RELEASE_IMAGE
7bd109a8855e985cc751be2eaa284e78ac63a956b08ed8b03d906300a695a375
Job succeeded

我不知道我在这里忘记了什么。我期望这种方法对于部署容器是正确的吗?我错过了什么/做错了什么?

tldr:想要使用 gitlab ci 和 docker-in-docker setup 将镜像部署到生产环境中,作业成功但没有容器。目标是在部署后在主机上有一个正在运行的容器。

最佳答案

发现我还需要在 gitlab-runner 配置中包含 docker 套接字,而不仅仅是在容器中提供它。通过添加 --docker-volumes '/var/run/docker.sock:/var/run/docker.sock' 并删除 DOCKER_HOST=tcp://docker:2375 我能够连接到我的主机系统上的 docker 并生成同级容器。

关于linux - 使用 gitlab ci docker-in-docker setup 部署 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53802429/

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