docker方式安装配置Jenkins
jenkins 安装
一、Jenkins介绍
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具
Jenkins应用广泛,大多数互联网公司都采用Jenkins配合GitLab、Docker、K8s作为实现[DevOps]()的核心工具。
Jenkins最强大的就在于插件,Jenkins官方提供了大量的插件库,来自动化CI/CD过程中的各种琐碎功能。
二、Jenkins下载
#下载Jenkins
[root@k8s-node1 ~]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
f606d8928ed3: Pull complete
cf135c941a45: Pull complete
fea651aa61b3: Pull complete
b3de9145d90a: Pull complete
06160249b5a4: Pull complete
319e5aa34f2f: Pull complete
e67b851589a6: Pull complete
a8084e1d7daf: Pull complete
43e00cf75355: Pull complete
4b2c5926839d: Pull complete
8693ba74707e: Pull complete
a375d4ce7d04: Pull complete
f9ad524238bd: Pull complete
c507abd5f1c4: Pull complete
Digest: sha256:1e613de4b61df2b8ad1b3771947a4c927070809af7dd3a2353364ff33189014c
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
#查询镜像
[root@k8s-node1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins latest 14194737b3cb 5 days ago 463MB
三、创建Jenkins挂载目录并授权权限
[root@k8s-node1 data]# pwd
/usr/local/jenkins/data
#授权,不授权后面启动容器会提示没有写入权限
[root@k8s-node1 jenkins]# chmod -R a+w /usr/local/jenkins/data/
四、docker创建并启动Jenkins容器
#启动容器
[root@k8s-node1 data]# docker run -itd --name jenkins -v /usr/local/jenkins/data:/var/jenkins_home/ -p 8080:8080 -p 50000:50000 jenkins/jenkins
50aa91cb43aacedfdef28466ce7a958d11cbea51b5b11518fed32193b249fad5
#查询日志提示没有写入权限
[root@k8s-node1 data]# docker ps -a | grep jenk
50aa91cb43aa jenkins/jenkins "/usr/bin/tini -- /u…" 41 seconds ago Exited (1) 39 seconds ago jenkins
[root@k8s-node1 data]#
[root@k8s-node1 data]# docker logs -f 50aa91cb43aa
touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
#这个报错是由于我们映射的/usr/local/jenkins/data目录没有授权写入权限导致
#授权
[root@k8s-node1 jenkins]# chmod -R a+w /usr/local/jenkins/data/
#再次启动容器
[root@k8s-node1 jenkins]# docker start 50aa91cb43aa
50aa91cb43aa
#查询日志已经正常启动
[root@k8s-node1 jenkins]# docker logs -f 50aa91cb43aa
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2022-10-17 09:01:54.210+0000 [id=29] INFO jenkins.install.SetupWizard#init:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
6b5139c0e21241b39084e217c93e404b
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
2022-10-17 09:02:30.342+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
2022-10-17 09:02:30.382+0000 [id=22] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
2022-10-17 09:02:58.416+0000 [id=44] INFO h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2022-10-17 09:02:58.421+0000 [id=44] INFO hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
2022-10-17 09:02:58.433+0000 [id=44] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$0: Finished Download metadata. 65,982 ms
五、修改镜像源地址
重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站
在本地映射的目录中找到文件:hudson.model.UpdateCenter.xml;修改地址为:http://mirror.esuni.jp/jenkins/updates/update-center.json
[root@k8s-node1 data]#
[root@k8s-node1 data]# pwd
/usr/local/jenkins/data
[root@k8s-node1 data]# ll
total 28
-rw-r--r-- 1 1000 1000 1661 Oct 17 17:08 config.xml
-rw-r--r-- 1 1000 1000 100 Oct 17 17:06 copy_reference_file.log
-rw-r--r-- 1 1000 1000 168 Oct 17 17:07 hudson.model.UpdateCenter.xml
-rw-r--r-- 1 1000 1000 171 Oct 17 17:01 jenkins.telemetry.Correlator.xml
drwxr-xr-x 2 1000 1000 6 Oct 17 17:01 jobs
-rw-r--r-- 1 1000 1000 907 Oct 17 17:07 nodeMonitors.xml
drwxr-xr-x 2 1000 1000 6 Oct 17 17:01 nodes
drwxr-xr-x 2 1000 1000 6 Oct 17 17:01 plugins
-rw-r--r-- 1 1000 1000 129 Oct 17 17:06 queue.xml.bak
-rw-r--r-- 1 1000 1000 64 Oct 17 17:01 secret.key
-rw-r--r-- 1 1000 1000 0 Oct 17 17:01 secret.key.not-so-secret
drwx------ 2 1000 1000 91 Oct 17 17:01 secrets
drwxr-xr-x 2 1000 1000 67 Oct 17 17:08 updates
drwxr-xr-x 2 1000 1000 24 Oct 17 17:01 userContent
drwxr-xr-x 3 1000 1000 55 Oct 17 17:01 users
drwxr-xr-x 11 1000 1000 264 Oct 17 17:01 war
#把地址修改成:http://mirror.esuni.jp/jenkins/updates/update-center.json
[root@k8s-node1 data]# cat hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url>
</site>
</sites>[root@k8s-node1 data]#
六、重启Jenkins容器并登录
[root@k8s-node1 data]# docker restart 50aa91cb43aa
50aa91cb43aa
访问jenkins首页,首次访问Jenkins需要稍微等会
在容器中复制对应密码
[root@k8s-node1 data]# docker exec -it 50aa91cb43aa cat /var/jenkins_home/secrets/initialAdminPassword
6b5139c0e21241b39084e217c93e404b
安装git,其他默认,选择安装
开始下载插件,可能会出现下载失败的插件,在登录进去首页也可以在次下载
创建一个用户
实例配置,默认
至此安装完成
安装失败的插件,可以在系统管理-插件管理中继续安装
Jenkins配置git,jdk,maven
一、下载插件
maven:
官网下载地址:https://maven.apache.org/download.cgi
jdk:自动官网下载,我这里用的是jdk8
二、把下载好的jdk,maven包上传到服务器中
[root@k8s-node1 ~]# ll
-rw-r--r-- 1 root root 8676320 Oct 19 09:43 apache-maven-3.8.6-bin.tar.gz
-rw-r--r-- 1 root root 194151339 Oct 17 11:46 jdk-8u231-linux-x64.tar.gz
解压到jenkins的映射目录中
[root@k8s-node1 ~]# tar -xzf apache-maven-3.8.6-bin.tar.gz -C /usr/local/jenkins/data
[root@k8s-node1 ~]# tar -xzf jdk-8u231-linux-x64.tar.gz -C /usr/local/jenkins/data/
[root@k8s-node1 ~]#
可以看到对应解压出来的文件
三、jenkins配置
登录jenkins,找到系统配置,全局工具配置
配置jdk
找到容器中的路径
代码拉取到Jenkins本地后,需要在Jenkins中对代码进行构建,这里需要Maven的环境,而Maven需要Java的环境,接下来需要在Jenkins中安装JDK和Maven,并且配置到Jenkins服务
配置maven
配置Maven的settings.xml:1. 镜像源修改为:阿里云镜像地址;2. 增加JDK1.8编译插件
[root@k8s-node1 conf]# cd /usr/local/jenkins/data/apache-maven-3.8.6/conf
#配置Maven的settings.xml,1. 镜像源修改为:阿里云镜像地址;2. 增加JDK1.8编译插件
[root@k8s-node1 conf]# vim settings.xml
<!-- 阿里云镜像地址 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<!-- JDK1.8编译插件 -->
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
jenkins配置maven
配置git
找到git安装路径,配置上去
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了