docker 部署 jenkins + jenkins插件简介
######
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节点。 详细配置请见博文https://www.cnblogs.com/faithH/p/14745330.html
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104164837658-1451550897.png)
4.2、Publish Over SSH 插件
通过 SSH 发送构建工件
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104165521078-99717118.png)
4.3、SSH 插件
该插件使用 SSH 协议远程执行 shell 命令
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104170717631-921714519.png)
4.4、SSH Agent 插件
此插件允许您通过Jenkins中的ssh-agent提供SSH凭据以进行构建
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104171924062-1982154790.png)
4.4、Git 插件
这个插件将Git与 Jenkins集成在一起。
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104172317926-1002454814.png)
4.5、Git client 插件
Jenkins中用于 Git 支持的实用程序插件
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104172528331-854124599.png)
4.6、Git Parameter 插件
添加从项目中配置的 git 存储库中选择分支、标签或修订的功能。
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211104174225230-20374795.png)
4.7、Gitlab 插件
该插件允许GitLab触发 Jenkins 构建并在 GitLab UI 中显示其结果。
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211105104018715-620712572.png)
4.8、Gitlab Hook 插件
启用 Gitlab 网络钩子来触发 Gitlab 项目上的 SMC 轮询
4.9、Role-based Authorization Strategy 插件
使用基于角色的策略启用用户授权。角色可以全局定义,也可以为由正则表达式选择的特定作业或节点定义。
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211105144733374-1406850530.png)
4.10、Active Choices 插件
该插件为作业提供了额外的参数类型,允许您级联更改并渲染图像或其他 HTML 元素,而不是传统参数。
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211105145410045-358937654.png)
4.11、build user vars 插件
该插件用于设置用户构建变量:jenkins 用户名和 id。
![](https://img2020.cnblogs.com/blog/1274745/202111/1274745-20211105150024550-1468731111.png)
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
######