使用CI工具在生产中的Docker

时间:2019-06-02 19:20:40

标签: docker docker-compose docker-swarm

使用CI工具在生产中运行dockerized应用程序的最佳方法是什么? 我一直在开发中使用docker-compose,但现在我需要一个工作流进行生产,包括更新服务。

目前,我有一个Versionned文件夹,其中包含应用程序运行所需的所有服务(每个服务位于其自己的子文件夹中,并具有dockerfile)。问题是,例如,如果我更新了我想部署并仅重新启动该服务而不是所有服务的后端。

该应用程序及其服务将仅在一台计算机上运行。不需要副本或多个节点。

任何对解决方案进行深入说明的资源将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

我建议使用drone控制您的CI工作流程。

我想您的所有服务都由git repo控制。然后按照GitFlow的指南,为每个服务创建不同的分支。

完成更新后,在service/A分支上添加一些提交,然后将PR创建到dev分支。此时,无人机docker plugin将构建您的Docker映像,并将映像推送到Docker注册表。无人机配置示例如下所示:

steps:  
  - name: build-image 
    image: plugins/docker  
    settings:  
      repo: your-image-repo-on-docker-registry
      username:   
      password:     
    when:  
      branch: dev  
      event: pull_request
  - name: deploy-container
    image: appleboy/drone-scp
    settings:
      host: yourserver.com
      username: ubuntu
      password: ssh_password
      port: 22
      script:
      - docker-compose pull your-image-repo-on-docker-registry
      - docker-compose up