前言
这是一个用Docker部署Jenkins,再通过Jenkins+Github完成自动部署,将SpringBoot项目打包成本地Docker镜像再发布成容器的记录。
思路是Docker部署Jenkins,与Github进行关联,最后Jenkins自动拉取并编译完代码后通过SSH登录宿主服务器,再发布镜像
1.Docker部署Jenkins
- yum install docker 安装Docker
- service docker start 启动docker
- docker search jenkins 搜索公共镜像库的jenkins镜像
- 正常使用第一个官方镜像,因为是自己的项目所以使用了自带blueocean这个更好看的插件的镜像
- docker run -d -p 8080:8080 -v /root/jenkins_home:/var/jenkins_home --name jenkins_demo jenkinsci/blueocean
-d 后台运行
-p 绑定宿主端口:容器端口
-v 绑定宿主文件夹:容器关键文件夹
--name 重命名容器名称
2.Jenkins 部署
- 第一次进入主页需要密码,docker logs jenkins_demo,可以看到Jenkins的日志,日志中包含了密码。
- 除了推荐插件安装外,为了之后的Maven项目部署,需要额外下载插件Maven Integration plugin;以及为了部署后去服务器上发布docker镜像,额外下载插件SSH plugin。
- 下了Maven插件后才有如下图所示的构建一个Maven项目。
- 首先配置源码管理,认证的时候如果是私有项目才填认证信息否则可以为空
- 然后构建触发器中hook打钩
- Maven项目中需要重新打jar包
7.最后登录到主机上把打好的jar包复制到备份目录中最后通过make脚本构建镜像
项目配置完毕
- 系统配置中,这个SSH需要提前配置 上面项目才能使用远程SSH凭证登录到主机上完成操作
- Github配置
这个地方凭证配置的是github的token
token从Github中获取,位置在个人的Setiing中的Developer setting
并在服务器的高级中,选择指定另一个Hook
用于Github上 - 在全局工具配置里 因为Jenkins是部署到Docker容器内部,所以Maven,JDK,Git都使用自动安装
系统全局配置完毕
3.打包项目镜像并发布成容器
- 最开始没有加入rancher的时候是使用命令行,本地打包后发布
- 加入rancher后直接使用rancher发布,现在在考虑的是,以前容器每次构建是根据代码Push后自动更新容器,现在使用rancher正在考虑如何解决自动发布的问题
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。