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类似
————————————————
原文链接:https://blog.csdn.net/u010698107/article/details/113819992