镜像打包新镜像 tag 名字:版本 (新的)仓库地址/名字:版本
docker 上传
docker下载
docker tag busybox:latest 123.com/busybox:vt
docker push 123.com/busybox:vt
docker pull 123.com/busybox:vt
dockerfile创建新镜像 地址/名字:版本
docker build -t 123.com/busybox:vt .
nexus3 +docker
https://www.jianshu.com/p/86e573f18df3?from=singlemessage
有个hosted 的选项上面是disabe 可以改成allow选项
https://blog.csdn.net/artaganan8/article/details/93386196
主要参考后面docker部分脚本
思路
流程
git 上传gitlab
以下Jenkins插件执行或者shell命令执行
Jenkins拉取gitlab分支或tag ---触发方式:手动点击或者自动git钩子
mvn项目打包编译成jar
jar发送到docker基础镜像主机(本机/app/test目录下,其它任务/app/prod1,prod2等等),删除已有镜像,制作Dockerfile镜像,上传到镜像nexus仓库
【a】部署上传镜像tag永远是latest
【b】tag按日期时间备份,发送到nexus仓库,
生产环境和测试环境拉取镜像,删除已有容器,运行容器
-- 自动化脚本 ansible
-- 实现蓝绿部署或者滚动部署
方案1,Jenkins先部署一台主机或者部分,验证没问题,再部署其它主机
方案2,Jenkins一个一个点
如果节省空间还可以删除不用的镜像 docker rmi 仓库:tag
-- 定时清空无用的docker镜像和日志
-- 收集docker日志,集中显示和处理。
方案1:简单nfs共享挂载,手动浏览,无ui,
方案2:docker-compose安装Graylog实现日志监控,有ui,spring需要新增logback-gelf依赖,比elk轻,url参考:
https://zhengqing.blog.csdn.net/article/details/107500344?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
方案3:elk【efk】有ui,庞大
clean package -DMaven.test.skip=true -Dmaven.compile.fork=true -U -pl java110-core -am 有-am 编译依赖 没有-am不编译