问答 基于容器打包构建流程问题

阿廉 · 2019年05月06日 · 最后由 dive 回复于 2019年05月17日 · 2515 次阅读

前言

公司想搞一个基于 docker 容器,自动打包发布的流程;主要应用于测试环境打包发布,之前也没做过。
自己想了两个流程发出来想和大家讨论一下。希望大家能给出一些建议。

基于宿主机打包

  • GitLab:存储代码
  • 宿主机:安装 Jenkins、Docker、maven 等构建依赖的工具。
  • 容器:运行两个容器—1.postgres 数据库容器;2.Tomcat 容器; 流程: 1.宿主机 Jenkins 创建 job 拉取代码,打包; 2.使用 docker cp 将 war 包粘贴到 Tomcat 容器; 3.重启 Tomcat 容器。

容器内直接打包

  • GitLab:存储代码
  • 公司内网服务器:安装 Jenkins
  • 另外服务器:运行两个容器:容器 A 安装 jenkins、tomcat、maven、git 等等;容器 B 安装 postgres 数据库; 公司内网服务器安装的 Jenkins,作 master;容器 A:jenkins 做 slave 流程: 1.执行内网服务器中 jenkins-job; 2.容器 Ajenkins 拉去代码,构建打包; 3.粘贴 war 包至 tomcat 相应路径; 4.重启 tomcat。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

容器编排的话用 k8s 解决

感觉这种方式还是传统虚拟机的玩法啊..为啥还要依赖 war 这个中间产物呢 直接输出镜像不好么 纯探讨哈

gocopper 回复

k8s 还没看😳,您有什么比较好的参考资料吗?

AngryTester 回复

嗯,您的意思是说直接用 dockerfile 直接把 war 打包到 images 吗

阿廉 回复

看官网吧,资料新点

阿廉 回复

嗯 是的

用了 gitlab-runner 么?

可以直接再 Jenkins 里面配置 tomcat 的地址,编译完成后的 war 包,直接上传到 tomcat 里面,不需要 docker cp。还可以是你重新编译一个镜像,然后滚动更新

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册