本文主要记录如何通过docker安装jenkins,并且通过jenkins部署项目,最终效果是只要在jenkins对某个项目点击构建,jenkins就会去gitLab上拉取最新项目的最新代码,然后根据你自己项目的pom.xml文件,把项目打包成jar,并且自动把这个最新的jar运行起来,达到一键式构建的目标。
jenkins部署java web项目的主要思路是
1、先把代码拉到jenkins所在服务器的docker上
2、打包
3、上传到指定服务器上
4、在指定服务器执行命令
1、Docker安装jenkins
1)jenkins所在宿主服务器首先安装好jdk、git、maven
git:https://blog.csdn.net/shanmu0737/article/details/123746601
jdk:
maven:
其中 /etc/profile新增的配置
export JAVA_8_HOME=/root/apply/app/jdk1.8.0_221
export JAVA_HOME=$JAVA_8_HOME
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:/usr/local/git/bin
2)#拉取jenkins镜像
docker pull jenkins/jenkins:2.344
3)创建jenkins工作目录
mkdir -p /root/apply/jenkins_mount
chmod 777 /root/apply/jenkins_mount
4)镜像id #启动jenkins镜像
docker run -itd --name jenkin --privileged=true -p 10240:8080 -p 10241:50000 -v /root/apply/jenkins_mount:/var/jenkins_home -v /root/apply/apache-maven-3.8.4:/usr/local/maven -v /usr/local/git/bin/git:/usr/local/git -v /etc/localtime:/etc/localtime docker.io/jenkins/jenkins:2.344
docker run -d
--privileged=true
-p 10240:8080\ # 将容器中的端口8000,挂载到主机端口10240
-p 10241:50000\ # 将容器中的端口50000,挂载到主机端口10241
-v /root/apply/jenkins_mount:/var/jenkins_home\ # 将容器中的目录/var/jenkins_home,挂载到主机目录/root/apply/jenkin_mount
-v /etc/localtime:/etc/localtime\ # 将容器中的目录/etc/localtime,挂载到主机目录/etc/localtime
-v /etc/local/java:/etc/local/java\ # 将容器中的目录/etc/local/java,挂载到主机目录/etc/local/java
-v /root/apply/apache-maven-3.8.4:/usr/local/maven\ # 将容器中的目录/usr/local/maven,挂载到主机目录/root/apply/apache-maven-3.8.4
--name jenkin\ # 给容器命名为jenkin
jenkins/jenkins:2.344 # 选择镜像
如果执行命令发现jenkins没有启动成功,很大概率是因为挂载的目录没有权限,需要授权
chown -R 1000:1000 /root/apply/jenkins_mount
chown -R 1000:1000 /root/apply/apache-maven-3.8.4
chown -R 1000:1000 /usr/local/jenkins
chown -R 1000:1000 /etc/localtime
如果觉得Jenkins占用内存过大, 我们可以采用下面的方式限制jenkins占用内存大小:
# docker限制内存大小
docker update jenkin -m 3g --memory-swap -1
# 命令详解
--memory 或 -m 限制容器的内存使用量
--memory-swap 限制内存和 Swap 的总和,不设置的话默认为--memory的两倍
5)查看jenkins是否启动成功
docker ps -l
6)查看docker容器日志。
docker logs myjenkins
7)配置镜像加速,进入 cd /root/apply/jenkins_mount 目录。
cd /root/apply/jenkins_mount
修改 vi hudson.model.UpdateCenter.xml里的内容
修改前
将url修改为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
8)访问Jenkins页面,输入你的ip加上10240:http://ip:10240/login?from=%2F
9)管理员密码获取方法,编辑initialAdminPassword文件查看,把密码输入登录中的密码即可,开始使用。
cat /root/apply/jenkins_mount/secrets/initialAdminPassword
到此以Jenkins全部安装成功
2、配置Jenkins
详情可参考:https://blog.csdn.net/lzc2644481789/article/details/124888223
1、系统管理->插件管理 -> 可选插件中进行输入安装插件: publish over ssh 和 Maven Integration plugin 、gitee plugin
2、配置git、maven:系统管理 -> 全局工具配置 -> 找到Git和Maven
3、生成电脑的公钥私钥,配置到Gitee
4、配置Publish over SSH:“系统管理” -> “系统配置” -> Publish over SSH
3、新建任务
新建一个自由风格的任务
1)配置源码
2)配置构建步骤
clean install -Dmaven.test.skip=true
启动 jar 包的脚本
cd /root/apply/app
source /etc/profile # 不执行该命令,可能会出现jar包已经上传至服务器 /root/apply/app 路径下,但是无法启动jar包
ps -ef | grep mybatis-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{printf $2}' | xargs kill -9
nohup java -jar mybatis-demo-0.0.1-SNAPSHOT.jar >log.log &
4、自动构建测试
1、新建一个自由风格的任务
2、配置源码信息
3、配置构建出发器
4、编辑构建环境