生产环境中怎么高效的使用docker,docker-compose?

现在有一个springboot-web项目,引用了很多其他服务例如redis,rabbitmq,目前是使用docker-compose,每个服务最终会对应一个container,web项目的构建就是简单的将jar包COPY到容器中并启动。请问一下如何在生产环境中去使用呢?假如我想要升级服务(可能升级web项目,也可能升级redis版本等),我应该怎么去设计整个升级部署流程呢?

最笨的办法是去直接更新docker-compose.yaml文件,然后docker-compose up? 这似乎太挫了?

任何建议都非常感谢!!

阅读 3k
1 个回答

如果要完整:

使用 CI/CD 加 k8s 集群配合私有镜像库.

我帮公司搭建的是:

Rancher 构建一个单节点 k8s 集群(实际上你不需要直接操作 k8s 集群),Rancher 自己有一个简单的 CI/CD,但是只支持 git,而且真的很 简 单.

你可以搭建 gitlab/jenkins/teamcity 之类的东西来处理自动打包镜像上传私有库 harbor 的事情.

相对来说 teamciy 最容易搭建,支持 Windows,不过免费版只能添加三个构建节点.

升级的话只需要去 rancher 重新写一下使用的镜像版本号即可. (rancher 还支持不同的升级策略:先启动新的再关掉旧的、批量建新的(多个 POD)批量删旧的之类.

如果这套东西觉得太重,那么暂时只有 docker-compose 这种(或类似的)方案。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题