######

1、所需环境

docker-ce

2、部署jenkins

用中文社区提供的 Jenkins 镜像 无需设置,直接安装即可,速度飞快。
附-官方镜像安装插件失败分析
以上面 Jenkins 挂载的目录为例
在 jenkins_home 的目录下,hudson.model.UpdateCenter.xml 这个文件定义了 插件拉取的配置地址,默认的地址可以直接访问,你会发现,他连接的是 https://www.google.com/, 由于墙的原因,这个地址一直访问失败。
在/jenkins_home/updates 目录下的default.json 文件内容,就是hudson.model.UpdateCenter.xml 定义的插件拉取的配置地址 里面的内容。即使你通过其他博客 修改了 default.json 的文件内容,当你再次 启动的时候,会立马还原过来,所以怎么修改都还不会生效。
而 Jenkins 中文社区提供的镜像,这块已经处理好了,插件拉取的配置地址 已经换为国内镜像地址,所以插件下载非常快。
Jenkins 中文社区 关于插件拉取的解释:
https://community.jenkins-zh.cn/t/jenkins/26
https://jenkins-zh.cn/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/

# dockerhub镜像地址: https://hub.docker.com/_/jenkins?tab=tags&page=1&ordering=last_updated
# 中文镜像地址:  https://hub.docker.com/r/jenkinszh/jenkins-zh/tags?page=1&ordering=last_updated
docker pull jenkinszh/jenkins-zh:2.267
mkdir -p /home/jenkins
# docker中jenkins用户ID为1000
chown -R 1000:1000 /home/jenkins

docker run  -d --name jenkins -p 8080:8080 -p 50000:50000 -v  /home/jenkins:/var/jenkins_home \
--env JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Duser.timezone=Asia/Shanghai" \
jenkinszh/jenkins-zh:2.267

#附加:
#(上述启动方式是以jenkins用户启动,需要授权目录才能挂载,此方式root用户直接创建目录挂载即可)
#(需要执行远程服务器命令,在宿主机做免密直接将/root/.ssh文件挂载到容器中即可 )
docker 以root用户启动容器
参数:-u root
示例:
docker run -d --name jenkins -u root -p 8080:8080 -p 50000:50000 -v /root/.ssh:/root/.ssh -v /home/jenkins:/var/jenkins_home \
--env JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Duser.timezone=Asia/Shanghai" \
jenkinszh/jenkins-zh:2.267

3、参数简介

-p 外部端口:容器内部端口
-d 后台启动
-v 文件映射[宿主机目录:容器目录]
--name  指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字
-Duser.timezone=Asia/Shanghai  指定时区

4、jenkins插件

SSH Build Agents     
Publish Over SSH
SSH
SSH Agent
Git
Git client
Git Parameter
Gitlab
Gitlab Hook
Role-based Authorization Strategy
Active Choices
build user vars

 4.1、SSH Build Agents 插件 

允许使用SSH协议的Java实现通过SSH启动代理,配置多node节点。  

docker jenkins nodejs 安装 安装 jenkins docker插件_Jenkins

4.2、Publish Over SSH 插件

通过 SSH 发送构建工件

docker jenkins nodejs 安装 安装 jenkins docker插件_JAVA_02

 

 

4.3、SSH 插件

该插件使用 SSH 协议远程执行 shell 命令

4.4、SSH Agent 插件

此插件允许您通过Jenkins中的ssh-agent提供SSH凭据以进行构建

docker jenkins nodejs 安装 安装 jenkins docker插件_JAVA_03

 

 

4.4、Git 插件

这个插件将Git与 Jenkins集成在一起。

docker jenkins nodejs 安装 安装 jenkins docker插件_docker_04

 

 

4.5、Git client 插件

Jenkins中用于 Git 支持的实用程序插件

4.6、Git Parameter 插件

添加从项目中配置的 git 存储库中选择分支、标签或修订的功能。

docker jenkins nodejs 安装 安装 jenkins docker插件_Jenkins_05

4.7、Gitlab 插件

该插件允许GitLab触发 Jenkins 构建并在 GitLab UI 中显示其结果。

docker jenkins nodejs 安装 安装 jenkins docker插件_Jenkins_06

 

4.8、Gitlab Hook 插件

启用 Gitlab 网络钩子来触发 Gitlab 项目上的 SMC 轮询

4.9、Role-based Authorization Strategy 插件

使用基于角色的策略启用用户授权。角色可以全局定义,也可以为由正则表达式选择的特定作业或节点定义。

4.10、Active Choices 插件

该插件为作业提供了额外的参数类型,允许您级联更改并渲染图像或其他 HTML 元素,而不是传统参数。

docker jenkins nodejs 安装 安装 jenkins docker插件_JAVA_07

 

4.11、build user vars 插件

该插件用于设置用户构建变量:jenkins 用户名和 id。

docker jenkins nodejs 安装 安装 jenkins docker插件_docker_08

 

 5、制作docker-jenkins 升级镜像

下载jenkins war包:
清华源 下载地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/
官方  下载地址:http://mirrors.jenkins.io/war/

[root@docker-jenkins ~]# ls -l /home/upgrade
total 70552
-rw-r--r-- 1 root root      129 Oct 28 14:56 Dockerfile
-rw-r--r-- 1 root root 72236001 Oct 28 14:16 jenkins.war_2.319
-rwxr-xr-x 1 root root      584 Nov  1 12:24 start_jenkins.sh

[root@docker-jenkins ~]# cat /home/upgrade/Dockerfile 
#docker hub 官方镜像
FROM jenkinszh/jenkins-zh:2.267
# 我的镜像仓库文件(与官方镜像文件一至)
# FROM faith1/jenkinszh:jenkins-zh_2.267
COPY jenkins.war_2.319 /usr/share/jenkins/jenkins.war

[root@docker-jenkins ~]# cd /home/upgrade && docker build -t faith1/jenkinszh:jenkins-zh_2.319 .
Sending build context to Docker daemon 72.24MB
Step 1/2 : FROM jenkinszh/jenkins-zh:2.267
---> 96166763ba59
Step 2/2 : COPY jenkins.war_2.319 /usr/share/jenkins/jenkins.war
---> 785dbf8ff958
Successfully built 785dbf8ff958
Successfully tagged faith1/jenkinszh:jenkins-zh_2.319

[root@docker-jenkins ~]# docker images
REPOSITORY                          TAG                          IMAGE ID       CREATED          SIZE
faith1/jenkinszh                    jenkins-zh_2.319             785dbf8ff958   2 minutes ago    862MB
jenkinszh/jenkins-zh                2.267                        96166763ba59   8 months ago     790MB
faith1/jenkinszh                    jenkins-zh_2.318             05a094caba2a   10 days ago      862MB

[root@docker-jenkins ~]# cat /home/upgrade/start_jenkins.sh 
#!/bin/bash
docker run -d --name jenkins_2.319 -u root \
-p 8080:8080 -p 50000:50000 \
-v /root/.ssh:/root/.ssh \
-v /home/wx/.jenkins:/var/jenkins_home \
--env JAVA_OPTS="-Xms2048m -Xmx2048m -Xmn1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Duser.timezone=Asia/Shanghai" \
faith1/jenkinszh:jenkins-zh_2.319

 

######