Py学习  »  docker

在Docker安装程序中使用Gitlab CI Docker部署Docker容器

Roberto • 4 年前 • 314 次点击  

我正在尝试设置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

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

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

我不知道我忘了什么。我认为这种方法对于部署容器是正确的吗?我遗漏了什么/做错了什么?

TLDR : 要在Docker安装程序中使用Gitlab CI和Docker将映像部署到生产环境中,作业成功,但没有容器。目标是在部署后在主机上有一个正在运行的容器。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43418
 
314 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Roberto
Reply   •   1 楼
Roberto    5 年前

发现我还需要将Docker套接字包含在Gitlab Runner配置中,而不仅仅是在容器中可用。 通过添加 --docker-volumes '/var/run/docker.sock:/var/run/docker.sock' 去除 DOCKER_HOST=tcp://docker:2375 我能够在我的主机系统上连接到DoCKER和生成兄弟容器。