还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目

1. 构建流程

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第1张图片

2. 环境准备

  1. Docker version 20.10.6, build 370c289
    安装Docker查看我之前的文档:docker安装全教程:(一)联网版本 (包成功)
  2. centos 7 需要连接外网
  3. 准备一个可以直接部署的项目,可以直接下载我准备好的项目 gitee地址
    还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第2张图片

要么idea中直接pull代码,要么下载zip解压打开是一样的
4. 自己安装一个gitlab,或者直接使用github,或者直接使用gitee(我这里用的是gitee)

3. docker开放外部访问端口

vim /usr/lib/systemd/system/docker.service
# 添加这段代码到文件
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第3张图片

# 重新加载配置文件
systemctl daemon-reload
# 重启 Docker
systemctl restart docker

注意:此时打开下载好的代码,修改pom文件,把pom中的docker地址改成你的自己的,maven打包,试试看能不能把项目打包好传到docker镜像中。
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第4张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第5张图片

4. 通过Docker安装jenkins

4.1 下载jenkins镜像

docker pull jenkins/jenkins:lts

4.2 Docker容器中运行jenkins

docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts

4.3 登陆 jenkins

http://yourIp:8080

4.3.1 在虚拟机上查看 jenkins 的初始密码

docker logs -f jenkins
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第6张图片

4.3.2 复制密码,输入 jenkins 登陆界面

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第7张图片

4.3.4 选择安装推荐插件

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第8张图片

4.3.5 联网自动下载

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第9张图片

4.3.6 安装完成后,创建管理员账号:

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第10张图片

4.3.7 进行实例配置,配置Jenkins的URL:

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第11张图片

4.3.8 点击进行插件管理(这里的警告先别管,后面处理)还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第12张图片

4.3.9 如果这里遇到空间不足的问题,请对虚拟机硬盘进行扩容

请参考: centos磁盘扩容

4.3.10 点击这里安装需要的插件

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第13张图片
需要安装的插件: Role-based Authorization Strategy,SSH
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第14张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第15张图片

4.3.11 插件安装好以后,重启 jenkins

docker ps
# 上个命令获取docker中的 jenkins 容器id
docker restart #{containerId}

在这里插入图片描述

4.3.12 重新进入后一部分报警消失,并且汉化更全面了

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第16张图片

4.3.13 继续进行全局工具配置,先进行maven的安装

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第17张图片

4.3.14 配置centos的ssh登陆凭证

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第18张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第19张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第20张图片

4.3.15 再进入系统配置

· 添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了:**
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第21张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第22张图片

4.4 配置用户权限(略)

4.5 将我提供的代码上传到gitee(略)

4.6 执行脚本准备

mkdir -p /mydata/mysh
vim  /mydata/mysh/tiny-jenkins.sh

复制以下内容到脚本文件

#!/usr/bin/env bash
app_name='tiny-jenkins'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker run -p 8088:8088 --name ${app_name} \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d learn-tiny/${app_name}:1.0-SNAPSHOT
echo '----start container----'

给.sh脚本添加可执行权限:

chmod +x ./tiny-jenkins.sh  

4.7 进入正式环节

4.7.1 配置gitee的登陆账密

根据步骤 4.3.14 进行配置
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第23张图片

4.7.2 在Jenkins中创建执行任务

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第24张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第25张图片

4.7.2 在源码管理中添加gitee仓库地址

还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第26张图片

4.7.3 添加构建

选择调用顶层maven目标,该构建主要用于把我们的源码打包成Docker镜像并上传到我们的Docker镜像仓库去:
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第27张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第28张图片
· 下拉增加构建步骤
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第29张图片
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第30张图片
· 保存以后就可以开始构建啦!

4.7.4 再坚持一会儿,马上结束

点击立即构建,弹出下面的进度条,点击以后可以查看控制台输出
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第31张图片
第一次构建要下载好多maven依赖,过程缓慢,耐心等待
还在手动部署代码?手摸手教你docker+jenkins实现一键容器化部署springboot项目_第32张图片
下载好依赖以后第二次构建就会快很多,10s以内

4.7.5 访问swagger

运行成功后,访问该地址即可查看API文档:http://192.168.0.147:8088/swagger-ui.html

4.7.6 后记

后续的操作就是,提交代码到master,直接点击构建,.sh中自己摸索删除冗余镜像的操作吧~!
到此,整个过程就走完了,jenkins也算是入门了,能坚持到这一步的同志们,一定会有所成就的!

转载请注明出处,侵权必究

你可能感兴趣的:(jenkins,docker,spring,boot)