Circle CI的docker-compose部署配置

我正在使用Circle CI将微服务部署到Digital Ocean Drop,并对我的方法是否正确存在一些疑问。

我的微服务是使用docker-compose构建的,因此需要docker-compose.yml文件来拉,启动构成它的映像。

简而言之,我的部署方法是:

  1. 合并到master的分支将启动CircleCI构建
  2. CircleCI将运行单元测试
  3. 在所有测试通过后,docker-compose builddocker-compose被推送到Docker Hub
  4. 在远程服务器上停止该服务的所有正在运行的映像。
  5. 删除悬空的图像和局域网。
  6. 下载相关的docker-compose.ymlDockerfiledocker-compose.env文件。
  7. 使用docker-compose pull
  8. 使用docker-compose up
  9. 开始图像

我正在CircleCI中使用此配置:

version: 2.1
jobs:
  build:
    docker:
      - image: "circleci/node:10.16.0"
    steps:
      - checkout
      - run:
          name: Update to latest npm version
          command: "sudo npm install -g npm@latest"
      - restore_cache: 
          key: dependency-cache-{{ checksum "package-lock.json" }}
      - run:
          name: Install dependencies
          command: npm install
      - run:
          name: Install `docker-compose`
          command: |
            curl -L https://github.com/docker/compose/releases/download/1.19.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
            chmod +x ~/docker-compose
            sudo mv ~/docker-compose /usr/local/bin/docker-compose
      - setup_remote_docker:
          docker_layer_caching: false 
      - run:
          name: Build using `docker-compose`
          command: |
            docker-compose build
      - run:
          name: Login for Docker Hub
          command: | 
            echo "$DOCKER_PASSWORD" | docker login --username $DOCKER_username --password-stdin
      - run:
          name: Push to Docker Hub
          command: |
            docker-compose push
      - run: ssh-keyscan $DIGITALOCEAN_HOST >> ~/.ssh/known_hosts
      - add_ssh_keys:
          fingerprints:
            - fo:of:fe:ef:af
      - run:
          name: Remove currently running containers 
          command: |
            ssh root@$DIGITALOCEAN_HOST ./deploy_image.sh

我正计划创建一个bash脚本来处理以上列表中的步骤48。 让脚本处理Docker步骤是一个好主意吗? 还是有更好的方法来拥有更“原生”的CircleCI配置?

liulinjian123 回答:Circle CI的docker-compose部署配置

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3114940.html

大家都在问