Jenkins Docker容器在启动时不会将预先安装的插件复制到JENKINS_HOME
我似乎无法让jenkins在启动时将预先安装的插件复制到预期的/var/jenkins_home/plugins
目录中,如此处所述 。
我正在使用一个非常基本的Dockerfile:
FROM jenkins:alpine USER root RUN /usr/local/bin/install-plugins.sh ssh-agent USER jenkins
当我build立容器,它说插件安装成功,并在我运行容器后:
- 插件不会出现在Web控制台中,重新启动也不能解决问题。
- 容器内的
/var/jenkins_home/plugins
是空的 - 容器内部不存在
/usr/share/jenkins/ref/plugins
但是我确实在/var/jenkins_home/war/WEB-INF/detached-plugins
看到了预期/var/jenkins_home/war/WEB-INF/detached-plugins
我试图通过添加来复制它们:
RUN cp -R /var/jenkins_home/war/WEB-INF/detached-plugins/* /var/jenkins_home/plugins/`
但是在构build过程中出现以下错误:
cp: cannot stat '/var/jenkins_home/war/WEB-INF/detached-plugins/*': No such file or directory`
根据docker中心的文件。
创build您的dockerfile
FROM jenkins:alpine COPY plugins.txt /usr/share/jenkins/plugins.txt RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
Plugins.txt在同一个文件夹中也是你的dockerfile。 示例内容:
git:3.0.0 greenballs:1.15
build立新的形象:
$ docker build -t my-jenkins:2.0 .
你会看到这个:
Step 3 : RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt ---> Running in 5df5d14d8571 Analyzing war: /usr/share/jenkins/jenkins.war Downloading git:3.0.0 Downloading greenballs:1.15 --------------------------------------------------- INFO: Successfully installed 2 plugins. ---------------------------------------------------
启动容器来validation:
$ docker run -d -p 8080:8080 my-jenkins:2.0 $ docker exec -it e1f8ca9302d8 bash bash-4.3$ ls -l /var/jenkins_home/plugins/ total 2232 drwxr-xr-x 5 jenkins jenkins 4096 Dec 23 10:29 git -rw-r--r-- 1 jenkins jenkins 2152524 Dec 23 10:29 git.jpi -rw-r--r-- 1 jenkins jenkins 0 Dec 23 10:29 git.jpi.pinned -rw-r--r-- 1 jenkins jenkins 6 Dec 23 10:29 git.jpi.version_from_image drwxr-xr-x 9 jenkins jenkins 4096 Dec 23 10:29 greenballs -rw-r--r-- 1 jenkins jenkins 111507 Dec 23 10:29 greenballs.jpi -rw-r--r-- 1 jenkins jenkins 0 Dec 23 10:29 greenballs.jpi.pinned -rw-r--r-- 1 jenkins jenkins 5 Dec 23 10:29 greenballs.jpi.version_from_image
或者loginwebconsole。 greenballs插件很容易validation。 成功后,你会得到一个绿色的球,而不是一个蓝色的。
我正在build造和运行我的容器,如下所示:
docker build . docker run -d -p 8080:8080 -p 50000:50000 jenkins
所以当然,我运行的容器没有插件,它不是基于我刚刚构build的图像!
我应该一直在做这样的事情来运行我自己的形象:
docker build --tag custom_jenkins . docker run -d -p 8080:8080 -p 50000:50000 custom_jenkins
docker工人101: – /