使用docker连续部署
我实际上正在使用一个堆栈,允许我在集成/部署系统中进行一些自动化操作。
其实我工作如下:
- 我推我的代码到一个github存储库
- jenkins嗅回购,并build立软件,发射unit testing
- 如果unit testing(或其他types的testing,无论如何),它通知Rundeck部署到我的服务器(3在我的情况下)通过连接到SSH并告诉:“嘿家伙,你必须从github拉,新的软版本“,然后它重新启动有关的服务,我的软件现在是最新的
好的,告诉我,如果我错了,但似乎是一个很好的解决scheme吗?
然后,我想集装箱我的应用程序,现在,我有一些头痛。
首先解决scheme
事实上,我在想如下的东西:
- 推送到github
- jenkinstesting,build立docker形象
- Rundeck推送到docker集线器,并告诉3台服务器从集线器中取出新镜像,并通过SSH运行
问题:它会运行在另一个容器(多个docker运行相同的图像,但具有不同的版本:()
第二种scheme
第二个解决scheme是:
- 推送到github
- jenkinstesting并告诉rundecktesting成功,而不创build“真正的构build”(只有一个testing)
- Rundeck通过ssh连接到正在运行的容器 ,并要求提取修改,然后重新启动docker容器
问题:我被迫在我的所有容器中使用ssh
我不知道如何绕过我的问题,什么是最好的解决scheme…
谢谢你的帮助
我没有看到解决scheme1的任何问题。
1.用jenkinsbuild立生产版本
把它(通过jenkins)推到你的私人dockerregistry
3.Tell Rundeck / Ansible / Chef / Puppet要求3台服务器拉取最新的镜像并重启容器。
然而,强烈build议采取一些策略,如果发生某些事情,则会考虑蓝绿原则和回滚。
- docker化jenkins是一个不错的select?
- 使用bitbucketpipe道进行dropwizard + mysql + maven + docker项目的持续集成/交付
- 如果docker服务存在,请在Jenkinsfile内检查
- 我如何解决在我的VPS上部署/更新dockerized应用程序?
- 在亚马逊ecs上的集装箱交货
- devops – 我应该创build一个专门的'devops'GitHub用户读取权限?
- 在同一台机器上用堆栈build立两个不同项目的错误
- Docker CD / CI工作stream程的最佳实践是什么?
- 照常运行testing对docker集装箱或dockerizetesting?