Docker Compose-CI / CD的最佳命令?

时间:2019-02-12 08:00:20

标签: docker docker-compose continuous-integration gitlab-ci gitlab-ci-runner

我是Docker技术和CI / CD的新手,我想知道...在您看来,使用Gitlab CI / CD部署Docker Compose文件的最佳实践和命令是什么。

我想到了以下文件(但我不喜欢必须先停止容器才能再次运行所有内容的事实)

image: docker:latest

services:
  - docker:dind

variables:
  DOCKER_DRIVER: overlay2

stages:
  - test
  - deploy

test:
  stage: test
  tags:
    - development
  only:
    - develop
    - master
  cache:
    untracked: true
    policy: pull-push
    paths:
      - ./microservices/api/node_modules
      - ./microservices/client/node_modules
  script:
    - sudo docker-compose build --no-cache


step-deploy-production:
   stage: deploy
   only:
     - master
   script:
     - sudo docker image prune -f
     - sudo docker-compose build --no-cache
     - sudo docker-compose up -d --scale api=5 --scale client=5
   tags:
     - production
   when: manual

每个Docker服务的每个Docker文件中都有不同的单元测试,因此它们在build命令期间运行。

此外,我正在使用不同的gitlab-runners标签在一台机器上运行test阶段,在另一台机器上运行step-deploy-production

此外,将每个微服务的docker映像放在docker注册表中有什么优势? (Docker本身或Gitlab注册表)。抱歉,这个问题听起来太基本了...

0 个答案:

没有答案