我们需要自动化部署过程。让我指出我们使用的堆栈。 我们有自己的GitLab CE实例和私有docker注册表。在生产服务器上,应用程序在容器中运行。在每次主提交之后,GitLab CI使用代码构建映像,将其发送到docker注册表,这就是自动化结束的地方。
生产服务器上的部署可以通过几个步骤执行 - 停止当前的应用程序容器,拉出更新的容器并运行它。
自动化此过程的最佳方法是什么?
我读到了几个解决方案(但我相信还有更多)
首选方式是什么?或者你可以推荐其他东西吗?
无需使用swarm,kubernetes等工具。这是非常简单的应用程序。提前谢谢。
答案 0 :(得分:0)
如何在生产机器上安装Gitlab-ci runner?在推送到名为deploy
的主服务器上的注册表之后执行一项工作,并使用Gitlab CI标记将其固定到该计算机上。
该作业只是从注册表中提取图像并重新启动您的服务或任何您已有的服务。
类似的东西:
deploy-job:
stage: deploy
tags:
- production
script:
- docker login myprivateregistry.com -u $SECRET_USER -p $SECRET_PASS
- docker pull $CI_REGISTRY_IMAGE:latest
- docker-compose down
- docker-compose up -d
答案 1 :(得分:0)
我能想到四种解决方案