昨天安装Jenkins,装了一晚上的插件,早上起来发现大部分没安装成功,于是去插件管理界面安装,折腾到下午才算把需要的插件装完,当时我想如果我需要重新部署一套Jenkins,岂不是又需要下载插件,其他同事要搭Jenkins的话,也得重新下载插件。有没有一种方法可以把下载下来的插件一起打包,方便下一次的部署呢?
1、我把下载好的插件直接拷贝新的Jenkins机器上,不行
2、docker安装Jenkins,在线安装插件,通过commit成一个镜像,再以这个镜像运行一个容器,但一个插件也没有
经过公司大神的指点,在这篇文章中找到了方法https://github.com/jenkinsci/docker/blob/master/README.md
具体步骤
PS:我做好的镜像下载地址
链接:https://pan.baidu.com/s/1tATgiV37VczGGE7Ak5yhpA
提取码:inhu
1.下载镜像
docker pull jenkins/jenkins:lts
2.写plugins.txt文件
mkdir build_jenkins
cd build_jenkins
vim plugins.txt
文件格式——插件ID:插件版本
ssh:2.6.1
git:4.1.1
pipeline-github:2.5
workflow-cps:2.80
docker-plugin:1.1.9
docker-compose-build-step:1.0
docker-workflow:1.21
authentication-tokens:1.3
docker-commons:1.16
git-client:3.1.1
git-parameter:0.9.12
git-server:1.9
github-api:1.106
github-branch-source:2.6.0
github:1.29.5
ghprb:1.42.0
javadoc:1.5
ace-editor:1.1
handlebars:1.1.1
locale:1.4
maven-plugin:3.4
jdk-tool:1.4
workflow-aggregator:2.6
pipeline-maven:3.8.2
pipeline-github-lib:1.0
publish-over-ssh:1.20.1
ssh-slaves:1.31.1
ssh-credentials:1.18.1
gitlab-hook:1.4.2 #WebHook功能
GitHub:1.5.13
sonar:2.11 #代码检测
找插件版本的方法
以ssh插件为例
访问地址:https://plugins.jenkins.io/ssh/
3.写Dockerfile
cd build_jenkins
cat > Dockerfile << EOF
FROM jenkins/jenkins:lts
COPY plugins.txt /usr/share/jenkins/ref/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/ref/plugins.txt
EOF
4.构建镜像
docker build -t jenkins:plugins .
5.运行容器
docker run -d --name=jenkins -u root\
--restart=unless-stopped \
-p 8080:8080 -p 50000:50000 \
-v /home/jenkins:/var/jenkins_home \
jenkins:plugins