Jenkins与Docker的自动化CI/CD实战
一、发布流程设计
工作流程:
二、环境规划:
三、 部署过程
1,部署git
假如公司内部有直接克隆即可以
2,部署Jenkins环境
部署传送门:Jenkins+Maven+Svn实现代码自动打包与发布
3,部署私有镜像仓库
注意:docker 仓库 因为https 认证,所有需要pull的用户端,需要修改配置文件
4,所有主机安装docker
1)安装依赖包
2)增加Docker软件包源:
3)安装Docker CE
4)配置加速器
5)启动并开机启动
四、构建基础镜像
【Apache、Nginx、Tomcat、LNMP、LAMP、LNTP】
JAVA程序必需有JDK环境才可以运行,为了减少镜像大小及提高性能,这里直接把JDK放到宿主机上,容器以挂载形式使用。
1,安装jdk
2,拟写Dockerfile
3,构建镜像
4,上传到docker 镜像仓库
5,启动镜像 测试
五、Jenkins 配置
1.主页面 -> 系统管理 -> 全局工具配置
指定JDK、Maven路径,Git保持默认:
2.jenkins安装必要插件
主页面 -> 系统管理 ->管理插件:
3,配置SSH插件
第一步:先创立一个用于连接Docker主机的凭证 (有权限的客户)
主页面 -> 凭据 -> 系统 -> 右击全局凭据 -> 增加凭据:
输入连接Docker主机的客户名和密码:
第二步:增加SSH远程主机
主页面 -> 系统管理 -> 系统设置 -> SSH remote hosts:
问题:当以普通客户身份去使用docker images时,出现以下错误:
六、将从github上下载的JAVA项目,上传到自己的gitlab仓库
登陆gitlab查看solo项目:
七、Jenkins创立项目并发布测试
1.主页面 -> 新建任务 -> 输入任务名称,构建一个Maven项目:
注意:假如没有显示“构建一个Maven项目”选项,需要在管理插件里安装“Maven Integration plugin”插件。
配置Git参数化构建:
2.动态获取Git仓库tag,与客户交互选择Tag发布:【也可以设置分支】
3.指定项目Git仓库地址:
修改*/master为$Tag,Tag是上面动态获取的变量名,表示根据客户选择打代码版本。
4.设置maven构建命令选项:
利用pom.xml文件构建项目。
在Jenkins本机镜像构建与推送到镜像仓库,并SSH远程连接到Docker主机使用推送的镜像创立容器:
上图中 命令内容如下:
上图中Command 内容如下:
注:容器名称blog-solo,暴露宿主机端口8080,即便用宿主机IP 192.168.56.12:8080 访问blog-solo项目。
blog-solo项目已配置完成,开始构建:
选择tag,开始构建:
点击左下角构建历史里,右击第一个查看控制台输出:
构建详细内容
构建成功
访问:192.168.56.12:8080 查看部署结果
调整项目访问地址
进入容器,切换到项目目录
调整后,重启tomcat,再次验证,OK,结果如下:
至此,自动化CI环境调试完成,你可以模拟提交代码并打tag测试自动化发布流程。
八、问题总结:
查看docker.sock权限
处理方法:【免sudo 使用docker images 】
欢迎工作一到五年的Java工程师朋友们加入Java架构开发:744677563
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)正当利用自己每一分每一秒的时间来学习提升自己,不要再用”没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Jenkins与Docker的自动化CI/CD实战