Docker搭建持续集成平台Jenkins----使用docker来安装Jenkins服务

目录
环境准备
Docker搭建Jenkins
1. 安装
2. 创建docker的文件影射卷
3. 运行: 创建实例
4. 查看默认密码:
5. 输入密码
6. 安装推荐的插件
7. 设置用户名密码
8. Jenkins URL配置
Jenkins更新
1. jenkins.war 位置查看
2. 更新容器中的war包
3. 重启Jenkins
Windows安装Jenkins
————————————————

环境准备

本文介绍在linux上如何使用docker来搭建Jenkins服务,我使用的系统为centos7:

在CentOS 7中安装docker的方法可参考容器技术介绍:Docker简介及安装 

准备好docker环境之后还需要安装配置Java环境,在Jenkins 2.357 及 LTS 2.361.1之后的版本要求Java 11 或者 17,Java版本安装及升级步骤可参考Java环境安装配置步骤介绍

Docker搭建Jenkins

1、安装

1、可以先看下jenkins最新是什么版本

查看官网地址  https://www.jenkins.io/zh/download/

 

 

 

 

 

 选择一个最新或者次新版本

2、在linux控制台输入docker search jenkins

Jenkins docker hub地址: https://hub.docker.com/r/jenkins/jenkins

docker search jenkins

 通过下列命令拉取指定版本jenkins:eg:2.375.4

docker pull jenkins/jenkins:2.375.4

 

 

 下载完成验证:

docker images    #查看docker下所有镜像文件

如何查看自己安装jenkins的版本

docker inspect 43931342a888      #docker inspect 镜像ID

2、创建宿主机挂载目录

创建Jenkins挂载目录并授权权限(我们在服务器上先创建一个jenkins工作目录 /var/jenkins_mount,赋予相应权限,稍后我们将jenkins容器目录挂载到这个目录上,这样我们就可以很方便地对容器内的配置文件进行修改。 如果我们不这样做,那么如果需要修改容器配置文件,将会有点麻烦,因为虽然我们可以使用docker exec -it --user root 容器id /bin/bash 命令进入容器目录,但是连简单的 vi命令都不能使用)

mkdir -p /var/jenkins_mount    #宿主机和容器对应的位置目录就同时被创建了jenkins_mount目录,后续实现目录挂载
chmod 777 /var/jenkins_mount    #赋权操作

想了解宿主机与容器间的关系查看:宿主机与Docker之间的关系 

3、 创建docker的文件映射卷

创建docker的文件映射卷,用于存储数据

docker volume create jenkins_home    #创建docker卷,创建实时备份数据
docker volume inspect jenkins_home    #查看docker卷目录位置

——————————————————————————————————————————————————————————————————————————————————

释义: 您可以使用docker volume create命令创建 docker 卷。此命令将在/var/lib/docker/volumes目录中创建一个卷,保证实时同步存储容器配置数据,而不被意外删除。

docker volume create data_volume
docker volume ls
docker volume inspect data_volume

docker run命令时,您可以使用-v标志指定要使用的卷。这称为卷挂载。

  docker run -v data_volume:/var/lib/postgres postgres

如果该卷不存在,docker 会为您创建一个。现在,即使容器被销毁,docker volume create创建的docker卷数据也会保留在卷中,而挂载的/var/lib/postgres postgres的数据可能被破坏或者删除了。同步/var/lib/docker/volumes目录下备份了

如果您想将数据放在 docker 主机上的特定位置或磁盘上已有数据,您也可以将此位置挂载到容器上。这称为绑定安装。

docker run -v /data/postgres:/var/lib/postgres postgres

————————————————————————————————————————————————————————————————————

4、 运行: 创建运行守护式容器

jenkins默认启动后的时区为美国,启动时可设置为中国时区:

1 # 创建守护式实例并设置时区
2 docker run --name=myjenkins -id -p 8080:8080 -p 50000:50000 -v /var/jenkins_mount:/var/jenkins_home -v /etc/localtime:/etc/localtime jenkins/jenkins:2.375.2

验证容器创建并启动成功:

docker ps        #正在运行的容器 
docker ps  -a    #展示全部容器

————————————————————————————————————————————————————————————————————————————————————————————————

释义:docker run 运行容器

  -i (--interactive)打开STDIN(standard input标准输入),用于控制台交互

  -d(--detach)   后台运行镜像

  -p(--port) 8080:8080 将镜像的8080端口映射到服务器的8080端口。

  -p 50000:50000 将镜像的50000端口映射到服务器的50000端口

  -v(--volume) /var/jenkins_mount:/var/jenkins_home 格式:宿主机挂载目录容器jenkins工作目录,我们将容器jenkins_home上的目录挂载到宿主机jenkins_mount,方便后续同步数据。与/var/lib/docker/volumes目录docker卷不同。

  -v /etc/localtime:/etc/localtime让容器使用和服务器同样的时间设置。

  --name myjenkins 给容器起一个别名

  jenkins/jenkins:2.375.2  镜像名:tag   #通过docker images可以查看指定tag,因为我们下载的指定最新版本2.375.2

————————————————————————————————————————————————————————————————————————————————————————————————————————————

进入容器命令窗口:

docker exec -it myjenkins /bin/bash    #普通用户进入
docker exec -it -uroot myjenkins /bin/bash    #root用户进入

查看docker容器日志

docker logs myjenkins        #把密码记下来,复制下列登录备用

配置镜像加速,进入 cd /var/jenkins_mount/ 目录。

cd /var/jenkins_mount/

修改 

vi  hudson.model.UpdateCenter.xml

里的内容

修改前

将 url 修改为 清华大学官方镜像:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 

修改后:把阿里或者清华园的镜像源替换掉“https://updates.jenkins.io/update-center.json”

按“i”进入编辑“insert”状态,移动光标,删除原始数据,粘贴清华源,按esc键退出编辑模式,shift+“:”然后输入“wq”,保存退出。

确认修改完毕查看一下:

cat  var/jenkins_mount/hudson.model.UpdateCenter.xml  

然后重启容器:

 

 

docker restart myjenkins

浏览器输入电脑IP地址+端口号:http://192.168.65.130:8080/

 5. 登录

等待初始化完成后,输入密码

6. 安装推荐的插件

推荐使用手机流量热点或者公司FQ网络,能下载下来的插件会比较齐全。

 

 下载完毕:

 

 如有下载失败先跳过或重试都行:还可以按需安装。“继续”下一步

7. 设置用户名密码

8. Jenkins URL配置

 配置成功后,进入欢迎界面

 

9.下载插件  gitlab  webhook   allure  locale

 

 

下载allure

 

 

 

 下载gitlab  Webhook

下载汉化插件

 

 

 

10. Jenkins 全局变量配置

jdk配置:

 

 打开系统信息:

 

 打开配置变量:

 

 填写配置信息:

 

 配置git

查找git路径:

docker exec -it -uroot myjenkins /bin/bash
find / -name git

找到路径:/usr/bin/git

 

回到全局变量配置页面:

 

 allure配置需要安装完allure-commandline再配:

滑到最下边:应用-保存

 

 

重启容器:

docker restart myjenkins

 

 重新登录网页:ip:端口号

 

刷新,重启等等重新输入密码登录,进入jenkins,全中文版界面!!

 

 

以上jenkins已经部署完毕!!!!!!  不过有网友部署完毕发现好多需要的插件都需要更新的jenkins版本环境支持,所以需要更新jenkins↓↓↓↓↓下边提供方法

——————————————

更新之前确保容器的jdk是否符合要求:

因为:如果你使用的环境是java11,下列方法可行,如果是java8或许不行。只能用旧版本,jenkins插件手动下载导入。

 

 

 

Jenkins更新

进入Manage Jenkins,提示新版本,点击下载 jenkins.war 包。

或者进入官网https://www.jenkins.io/download/下载指定版本的war 包。

1. jenkins.war 位置查看
方法1:Manage Jenkins中查看
点击进入Manage Jenkins,找到Status Information,点击System Information,可以查看war包位置

 方法2:find命令查找
使用root账号进入容器中后使用find命令查找

1 [root@server ~]# docker exec -it -u root jenkins bash
2 root@ed883da9faab:/# find / -name jenkins.war
3 find: ‘/proc/1/map_files’: Operation not permitted
4 find: ‘/proc/7/map_files’: Operation not permitted
5 find: ‘/proc/138/map_files’: Operation not permitted
6 find: ‘/proc/155/map_files’: Operation not permitted
7 /usr/share/jenkins/jenkins.war
8 root@ed883da9faab:/# 

2. 更新容器中的war包

使用root账号进入容器中,备份原来的war包

1 [root@server ~]# docker exec -it -u root jenkins bash
2 root@ed883da9faab:/# cd /usr/share/jenkins
3 root@ed883da9faab:/usr/share/jenkins# mv jenkins.war jenkins.war.bak

将下载的war包复制到容器目录 /usr/share/jenkins 下(注意是在宿主机上操作)

1 [root@server ~]# docker cp jenkins.war jenkins:/usr/share/jenkins/
2 [root@server ~]# docker exec -it -u root jenkins bash
3 root@ed883da9faab:/usr/share/jenkins# ls
4 jenkins.war  jenkins.war.bak  ref

3. 重启Jenkins

 1 $ docker restart jenkins 

刷新页面,登陆,进入Manage Jenkins,可以看到版本更新成功,可以降回原来的版本。

 注意:可能会启动不成功,报如下错误:

 1 $ docker logs --tail="10" jenkins

2 .......

3 Error: Unable to access jarfile /usr/share/jenkins/jenkins.war 

可能原因是jenkins.war只有只读权限,需要给它添加权限。而此时jenkins容器没有启动成功,我们是无法使用命令 docker exec -it -u root jenkins bash 进入容器内进行操作的。

docker容器其实是由容器镜像组成的(参考容器技术介绍之docker核心技术概述)我们可以直接在/var/lib/docker/overlay2/ 目录下找到对应镜像层下的jenkins.war文件。

直接使用 find 命令查找:

1 $ find / -name jenkins.war
2 /var/lib/docker/overlay2/b82c33119417876cd306731155202416c5930b096ddae74c240bbdbe0a3a6d22/diff/usr/share/jenkins/jenkins.war
3 /var/lib/docker/overlay2/fd53382dc318381b812fc76d22635f0e8244f1ff586c31681acd88bf81a2c40b/diff/usr/share/jenkins/jenkins.war

有两个镜像层都有jenkins.war文件,可以都进去看一下。

进入对应镜像层目录下:

1 $ cd /var/lib/docker/overlay2/fd53382dc318381b812fc76d22635f0e8244f1ff586c31681acd88bf81a2c40b/diff/usr/share/jenkins/
2 $ ll
3 -rw-r--r-- 1 root root 72122649 8月  31 23:05 jenkins-228.war
4 -rw-r--r-- 1 root root 72247484 1月   6 10:38 jenkins-319.war
5 -rw-r--r-- 1 root root 73712089 2月   9 08:45 jenkins-326.war
6 -rw-r--r-- 1 root root 73713768 1月   6 09:21 jenkins-327.war
7 -r-------- 1 root root 72248203 2月   9 08:42 jenkins.war

发现jenkins.war文件只有只读权限,添加权限:

1 $ chmod 777 jenkins.war 

权限设置完成后就可以启动成功了

 

Windows安装Jenkins

war文件启动方法

下载地址:https://www.jenkins.io/download/

 进入war包所在路径执行命令:

1 java -jar jenkins.war --httpPort=8081

可以直接下载jenkins.msi文件安装

 

 

配置方法和Linux类似

 --THE END--

 

————————————————
原文链接:https://blog.csdn.net/u010698107/article/details/113819992

 

posted @ 2023-03-01 20:07  会飞的鱼Fly  阅读(1386)  评论(1编辑  收藏  举报