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 &

4、自动构建测试

1、新建一个自由风格的任务

2、配置源码信息

3、配置构建出发器

4、编辑构建环境

要在Docker安装Jenkins,可以按照以下步骤进行操作: 1. 首先,创建一个自定义的网络,可以使用以下命令创建一个名为woniu_network的网络,并指定IP区间为172.0.0.0/16: ``` docker network create --driver bridge --subnet 172.0.0.0/16 woniu_network ``` 2. 接下来,创建一个用于存放Jenkins数据和配置的目录。可以使用以下命令创建一个名为jenkins的目录,并设置权限: ``` mkdir -p /home/docker/jenkins && chown -R 1000 /home/docker/jenkins ``` 3. 然后,安装Jenkins。可以使用以下命令运行Jenkins容器: ``` docker run -d -p 8080:8080 -p 50000:50000 \ --name jenkins \ --network woniu_network \ --ip 172.0.0.20 \ --restart always \ --privileged=true \ -v /home/docker/jenkins:/var/jenkins_home \ jenkins ``` 4. 如果需要运行中文版的Jenkins,可以使用以下命令运行Jenkins容器: ``` docker run -d -p 8080:8080 -p 50000:50000 \ --name jenkins \ --network woniu_network \ --ip 172.0.0.20 \ --restart always \ --privileged=true \ -v /home/docker/jenkins:/var/jenkins_home \ jenkinsci/blueocean ``` 5. 现在,可以通过访问http://localhost:8080来访问Jenkins。 如果需要在Jenkins节点内执行Docker命令,可以使用以下命令下载并运行Docker映像docker:dind: ``` docker run -d --restart always \ --name jenkins-docker \ --privileged \ --network jenkins \ --network-alias docker \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 2376:2376 \ docker:dind ``` 如果需要清理Jenkins容器,可以使用以下命令: ``` docker rm -f jenkins-blueocean jenkins-docker docker volume rm jenkins-data jenkins-docker-certs ``` 希望以上信息对您有所帮助。 #### 引用[.reference_title] - *1* [Docker 安装 Jenkins](https://blog.csdn.net/u011374856/article/details/109022921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v4^insert_chatgpt"}} ] [.reference_item] - *2* *3* [docker安装jenkins](https://blog.csdn.net/networken/article/details/98112690)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v4^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值