1.明确中心
首先一定要清楚Jenkins到底是干嘛用的,通俗来讲,Jenkins就跟它的图标是一样的,就是一个代码管家,只要我们把代码上传到托管的网站,比如gitee、github等,它就可以自动帮我们完成
pull代码-->构建jar包 -->创建docker镜像-->部署docker容器
的一系列过程,只要明白中心,知道该干什么,在中途就不会迷茫。
2.前面的准备工作
一定要确定Jenkins的版本,要正确的版本才能正常使用,作者在这吃了大亏!!
我用的是:
2.1 拉取Jenkins:
docker pull jenkins/jenkins:2.289.3-centos
2.2 在本机创建jenkins_home 文件夹用来挂载docker里面的jenkins_home,方便后面操作
mkdir -p /docker/jenkins_home
2.3 改变jenkins_home文件夹权限
chown -R 1000:1000 /docker/jenkins_home
2.4 改变docker.sock权限,赋予读写
chmod 777 /var/run/docker.sock
2.5 下载maven
https://dlcdn.apache.org/maven/maven-3/3.8.3/source/apache-maven-3.8.3-src.zip
windows下载完毕后,上传到linux服务器
/docker
文件夹下面,并且解压( unzip ***.zip ),不会的百度、bing
2.6 创建 /docker/jenkins_home/Dockerfile 文件 (在linux本机)
FROM java:8-alpine LABEL maintainer="cick-y@foxmail.com" ADD smart-iot-monitor-1.0.jar app.jar ENTRYPOINT ["java", "-jar","/app.jar"]
maintainer : 作者名字
smart-iot-monitor-1.0.jar : 打包的jar包名称
其他照抄
2.7 创建 /docker/jenkins_home/test.sh 文件 (在linux本机)
文件内容如下:
docker version
cd /docker/jenkins_home
rm /docker/jenkins_home/workspace/Test/projectManage/target/Dockerfile
echo Y
cp /docker/jenkins_home/Dockerfile /docker/jenkins_home/workspace/Test/projectManage/target
echo Y
cd /docker/jenkins_home/workspace/Test/projectManage/target/
cid=$(docker ps -a| grep "smart-iot-monitor")
if [ "$cid" != "" ]; then
docker stop smart-iot-monitor
docker rm smart-iot-monitor
fi
echo "docker ps id"
echo $cid
images=$(docker images| grep "smart-iot-monitor" | awk '{print $3}')
if [ "$images" != "" ]; then
docker rmi $images
fi
echo "docker images id"
echo $images
docker build -t smart-iot-monitor:1.0 .
newimages=$(docker images| grep "smart-iot-monitor" | awk '{print $3}')
docker run -itd --name smart-iot-monitor -p8080:8080 $newimages
projectManage : 项目名称
docker build的镜像和容器名字
3.开始
3.1 运行docker容器
docker run -itd --name jenkins -p 8088:8080 -p 8089:50000 -p 8090:25 -v /docker/jenkins_home:/var/jenkins_home -v /docker/apache-maven-3.8.3:/var/mvn -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 "imagesId"
说明:
-itd : 交互、后台的选项
--name : 容器的名字
-p : 映射的三个端口, 格式(主机端口 :映射的容器内部端口)
-v : 挂载文件夹, 格式(主机文件夹:挂载容器内部的文件夹)
注意:看前面两个-v选项的挂载目录,一定要对!
"imageId" : 要改的,这是你的镜像id
3.2 输入密码
前面docker run 命令启动成功后,浏览器地址栏输入
http://xx.xx.xx.xx:8088
就可以进入jenkins了。
密码已经告诉我们了,因为前面挂载了jenkins_home 的目录,可以直接在linux本机输入
cat /docker/jenkins_home/secrets/initialAdminPassword
出来的那串数字混合英文就是password
3.3 前期配置
新手都选择 “安装推荐的插件” 这一选项
等待安装完后,配置用户名密码
进入Jenkins首页
点击
系统管理
–>插件管理
–>可选插件
搜索并安装
注意:maven 跟 docker 插件安装前,可能没有plugin后缀
选择后,点击
然后点击(我已经安装好了,没有去加载,所有比较空)
3.4 系统配置
重启后,点击 系统管理-->全局工具配置
然后如下图配置maven,maven的settings.xml大家自己去配置阿里云镜像,不会的百度
点击新增jdk
根据自己需要的jdk版本配置
如果是第一次,这里会有个超链接,点进去输入Oracle的账号密码才能下载。
配置maven
MAVEN_HOME 是根据之前的docker run 的挂载目录。
配置docker
名字随便取,Installation root 值为
unix:///var/run/docker.sock
点击应用,保存
3.5 系统配置
回到主页,点击 系统管理-->系统配置
滑倒最底部,有个publish over SSH,点击新增
Passphrase : ssh连接的密码
Name : 名字
Hostname : ip地址
Username: 连接用户
保存
好啦,到这里就配置差不多啦。
4. 创建项目
这里的名称只是随便取的,下面的步骤对应的是Test 的任务名称,我懒得截图了
点击确定,接下来的选项,如果我没有放图,那就是不选。
指定你的分支
选择 轮询SCM ,以下代码表示每五分钟巡查一次gitee仓库,如果有改动,就执行构建。
H/5 * * * *
以下画圈的部分,表示你pom.xml的位置,是根据你git仓库的代码来判断的
echo "——————build sucsses!——————" cd /var/jenkins_home/workspace/Test/projectManage/target/
到了这里,我们已经构建成功了,接下来就是用SSH连接服务器,再使用.sh 文件部署docker的部分
还是在原来的配置界面
有一些属性名称并没有汉化,但是大家可以自行翻译,根据我的路径来就可以了,在这里大家的路径都不一样,我就不贴路径代码了。
这个test.sh 文件,就是我开头写的那个test.sh文件,好好研究一下,我都是土办法。
保存运行
完成!!
———————————————————————————————————————————
花了我两天时间才研究透,😓.......