Docker 部署jenkins及java项目部署

本文主要记录如何通过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 &

 

 

 

posted @ 2023-06-13 10:34  DeyouKong  阅读(3351)  评论(1编辑  收藏  举报