带有Docker的CI / CD-最后的部署步骤是什么?

问题描述 投票:0回答:2

我正在开发一个小型网站(Ruby / Sinatra),供我在公司内部使用。 (简单来说,它处理一些源数据并生成报告。)

我想使用Docker进行部署,并具有适用于我的开发环境的设置,但是我试图理解“生产”部署的工作流程(我们使用的是Jenkins)。

我已经阅读了许多有关使用Docker部署工作流的文章,但是它们似乎都停留在“然后将映像推送到Docker注册表”。 似乎缺少的是如何拍摄图像并实际更新应用程序。

我很欣赏每个应用程序可能有所不同,但是下一步是什么? 我知道可以使用很多不同的框架,例如Chef,Puppet和Ansible,但我的问题确实是-如何将其集成到CI / CD管道中? 例如,作业是将更改“推送”到生产服务器,还是应该在生产服务器上运行Jenkins从属服务器以直接在服务器上执行作业?

docker jenkins continuous-deployment
2个回答
1
投票

有几种编排工具,例如docker-swarm,kubernetes和rancher。 例如,在docker swarm中,您可以创建服务,并且可以仅针对一个实例以蓝绿色部署方式更新版本(然后没有蓝绿色:)),如果您仅使用docker run,则应检查正在运行的容器,并停止并删除它(如果它运行带有较新映像版本的docker容器)。


0
投票

这取决于您的应用程序如何配置运行。 就我而言,我在systemd脚本中调用了“ docker run”。 它配置为一旦停止就重新启动。

因此,在我的Jenkinsfile中,将映像推送到注册表后,我会执行“ docker pull”(我的Jenkins代理在与应用程序运行所在的同一框上运行),然后执行“ docker stop”。 这将导致应用程序退出,然后重新启动,这将导致它获得刚被拉出的新版本,现在它正在运行新版本。

© www.soinside.com 2019 - 2024. All rights reserved.