前言
公司项目多忙着开发,所有项目服务都是博主一个个部署的,时间久了也是心累,所以抽时间把Jenkins部署上,之后让其他开发人员自己部署(让我解脱吧!!)。
部署Jenkins容器
Docker安装就不在赘述了,可以看我之前的文章(懒了);直接开始拉取jenkins镜像。
拉取镜像
docker pull jenkins/jenkins:2.486-jdk17
下载Maven
博主部署的服务主要是Java为后端+Vue为前端,所以需要Maven支撑Java服务;其他服务(c++、python、go、rust等)可以选择跳过这步。
Maven下载链接:https://maven.apache.org/download.cgi
这里选的是Stable(稳定版)。
解压Maven包
将压缩包通过Xftp工具上传到服务器中,这里我在home目录下创建了Jenkins目录用来存放包(/home/jenkins)。
解压Maven包
tar -xzf apache-maven-3.8.8-bin.tar.gz
更改Setting文件
修改Maven的依赖包存储路径和下载源地址,依赖包存储路径博主创建在 /home/jenkins/repository
修改Maven的setting.xml文件
# 创建Maven本地仓库目录
cd /home/jenkins
mkdir repository
# 赋予权限(这里的权限是给Jenkins容器内操作使用的)
chown -R 1000:1000 /home/jenkins/repository# 切换Maven目录
cd apache-maven-3.8.8
# 修改settings.xml
vim ./conf/settings.xml
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122203509797-1139848019.png)
下载JDK
博主部署的服务主要是Java为后端+Vue为前端,所以需要JDK支撑java服务;其他服务(c++、python、go、rust等)可以选择跳过这步。
JDK下载链接:https://www.oracle.com/cn/java/technologies/downloads/#java21
解压JDK包
将压缩包通过Xftp工具上传到服务器中,这里我还是放在/home/Jenkins目录下。
解压Node.js包
tar -xzf jdk-21_linux-x64_bin.tar.gz
赋予权限
# 赋予权限(这里的权限是给Jenkins容器内操作使用的)
chown -R 1000:1000 /home/jenkins/jdk-21.0.5
下载Node.js
博主部署的服务主要是Java为后端+Vue为前端,所以需要Node.js支撑Vue服务;其他服务(c++、python、go、rust等)可以选择跳过这步。
Node.js下载链接:https://nodejs.org/dist/
解压Node.js包
将压缩包通过Xftp工具上传到服务器中,这里我还是放在/home/Jenkins目录下。
解压Node.js包
tar -xzf node-v18.18.0-linux-x64.tar.gz
赋予权限
# 赋予权限(这里的权限是给Jenkins容器内操作使用的)
chown -R 1000:1000 /home/jenkins/node-v18.18.0-linux-x64
安装docker-compose
这里的docker-compose是方便后续统一构建用的,大家按自己实际情况决定是否安装。
下载地址:https://github.com/docker/compose/releases
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241123224831870-1398254129.png)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241123224856450-1138438316.png)
下载后,直接通过xftp上传到服务器目录 /usr/local/bin
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241123224955376-1409568229.jpg)
修改名称为 docker-compose
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241123225020863-1387730414.jpg)
赋予操作权限
chmod +x /usr/local/bin/docker-compose
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241123225058235-93422734.jpg)
创建软链
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试
docker-compose -v
创建Jenkins容器
注意:创建容器前需要给文件夹设定权限,否则Jenkins挂载时会报错权限不足!
创建 /home/jenkins/data 用于映射Jenkins的所有配置数据,其中所有构建的项目都存放在data目录下的:/workspace/
# 切换目录
cd /home/jenkis
# 创建data文件夹
mkdir data
# 赋予权限(这里的权限是给Jenkins容器内操作使用的)
chown -R 1000:1000 /home/jenkins/data
等下会将宿主机的docker.sock文件映射到Jenkins中,也需要赋予权限
# 赋予权限(这里的权限是给Jenkins容器内操作使用的)
chown -R 1000:1000 /var/run/docker.sock
容器创建命令
docker run -p 10240:8080 -p 10241:50000 \--restart always \-v /home/jenkins/data:/var/jenkins_home\-v /home/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 \-v /home/jenkins/repository:/opt/maven/repository \-v /home/jenkins/jdk-21.0.5:/opt/jdk/jdk-21.0.5 \-v /home/jenkins/node-v18.18.0-linux-x64:/opt/node/node-v18.18.0-linux-x64 \-v /var/run/docker.sock:/var/run/docker.sock \-v /usr/bin/docker:/usr/bin/docker \-v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose \-v /etc/localtime:/etc/localtime \--name jenkins \-d jenkins/jenkins:2.486-jdk17
--restart always :配置开机自启,失败自动重启
-v /home/jenkins/data:/var/jenkins_home\ :将Jenkins的数据挂载到宿主机
-v /home/jenkins/apache-maven-3.8.8/:/opt/maven/apache-maven-3.8.8 \ :将Maven挂载到Jenkins容器中
-v /home/jenkins/repository:/opt/maven/repository \ :将Maven本地仓库路径挂载到Jenkins容器中,settings.xml中的路径配置的是容器内的仓库路径
-v /home/jenkins/jdk-21.0.5:/opt/jdk/jdk-21.0.5 : 将JDK21挂载到Jenkins容器中
-v /home/jenkins/node-v18.18.0-liunx-x64:/opt/node/node-v18.18.0-liunx-x64 \ :将Node.js挂载到Jenkins容器中
-v /var/run/docker.sock:/var/run/docker.sock \ :将宿主机Docker挂载到Jenkins容器中,方便Jenkins操作宿主机的Docker部署服务
-v /usr/bin/docker:/usr/bin/docker \ :将宿主机Docker挂载到Jenkins容器中,方便Jenkins操作宿主机的Docker部署服务
-v /usr/local/bin/docker-compose:/usr/local/bin/docker-compose \ :将宿主机docker-compose挂载到Jenkins容器中,方便Jenkins操作宿主机的docker-compose部署服务
-v /etc/localtime:/etc/localtime \ :将宿主机时间信息挂载到Jenkins容器中
访问Jenkins页面
访问地址:http://你的ip:10240
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241121202402320-794096715.png)
这里的密码存放地址已经通过挂载方式映射到宿主机的 /home/jenkins/data 中,所以可以通过如下命令查看
tail /home/jenkins/data/secrets/initialAdminPassword
配置Jenkins部署
基础插件安装
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241121202912755-736941905.png)
开始漫长的等待…………
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241121202943848-384803821.png)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241121210535548-1467938939.png)
设置完成后,重启下容器在登陆。
安装GitLab插件
进入 系统管理 -> 插件管理
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122083052094-1659964179.png)
选择 插件商城 -> 搜索插件 ;勾选插件点击右上角安装。
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122083557697-421510066.png)
常用插件安装
GitLab(代码仓库管理):公司自己搭建的GitLab,大家根据自己情况下载其他仓库管理 GitHub Gitee GitCode 等等
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122085204008-1885722918.png)
Git Parameter Plug-In(git分支管理):可以在构建的时候选择git的某一个分支来构建服务
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122090734389-691340915.png)
Pipeline(流水线管理):Jenkins开始进入的时候,推荐安装时会自动装,但是有可能会安装失败,所以在商城搜一下,搜不到就说明装了
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122085637694-734366721.png)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122085723291-1137594200.png)
Maven Integration(Maven构建工具)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122111407634-653739551.png)
Extended Choice Parameter(参数化构建插件):它允许我们在构建过程中动态地设置和传递参数。对于需要用户输入或者动态选择的参数,我们可以使用多选框、单选框等来呈现
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122090705231-1031080305.png)
NodeJS(前端构建依赖环境)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091051543-709417363.png)
SSH(远程登录服务)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091222757-1907693009.png)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091239046-1667021964.png)
Role-based Authorization Strategy(Jenkins用户权限管理插件)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091338951-476062136.png)
SonarQube Scanner(代码检测插件)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091407714-784027725.png)
Job ConfigurationHistory(更新历史记录插件)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091453359-186140180.png)
Build Name and Description(构建时自定义名称)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122211428000-1577127993.png)
配置环境变量
进入 系统管理 -> 系统配置
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122082118715-497422647.png)
向下拉拽,找到全局属性,配置Maven、Node环境变量
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122082713091-1975927529.png)
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122091953227-1450764598.png)
配置GitLab信息
进入 系统管理 -> 系统配置 ;还是在系统配置内,向下拉找到GitLab
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122093020239-425762191.png)
新增GitLab的API Token
获取GitLab个人API Token的方式
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122092536411-258767901.png)
选择刚才创建的API Token,测试链接
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241123224144211-795077695.png)
配置全局工具配置
进入 系统管理 -> 全局工具配置
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122095248814-109099580.png)
配置Maven的settings.xml文件位置
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122095447785-1176949703.png)
配置JDK路径
配置Git路径
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122095519128-1298780254.png)
配置Maven路径
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122095601519-100780963.png)
配置Node.js路径
![](https://img2024.cnblogs.com/blog/1582099/202411/1582099-20241122095634777-2019166816.png)
点击保存!
下一篇 Docker:Docker搭建Jenkins并共用宿主机Docker部署服务(二)构建后端微服务多模块 - 怒吼的萝卜 - 博客园