我似乎无法让詹金斯在启动时将预安装的插件复制到预期的/var/jenkins_home/plugins
目录,如文档here所示。
我正在使用一个非常基本的Dockerfile:
FROM jenkins:alpine
USER root
RUN /usr/local/bin/install-plugins.sh ssh-agent
USER jenkins
当我构建容器时,它表示插件安装成功并且在我运行容器之后:
/var/jenkins_home/plugins
为空/usr/share/jenkins/ref/plugins
在容器中不存在<小时/> 然而我确实看到了预期的插件
/var/jenkins_home/war/WEB-INF/detached-plugins
我试图通过添加:
来复制它们RUN cp -R /var/jenkins_home/war/WEB-INF/detached-plugins/* /var/jenkins_home/plugins/`
但是在构建期间我遇到以下错误:
cp: cannot stat '/var/jenkins_home/war/WEB-INF/detached-plugins/*': No such file or directory`
答案 0 :(得分:3)
根据docker hub的文件。
创建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
构建新图片:
$ 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.
---------------------------------------------------
启动容器以验证:
$ 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
或者检查网络控制台。 greenballs插件很容易验证。在成功构建之后,您将获得一个绿色球而不是蓝色。
答案 1 :(得分:-1)
我正在构建和运行我的容器:
docker build .
docker run -d -p 8080:8080 -p 50000:50000 jenkins
当然,我运行的容器没有插件,它不是基于我刚刚构建的图像!
我应该做这样的事情来运行我自己的形象:
docker build --tag custom_jenkins .
docker run -d -p 8080:8080 -p 50000:50000 custom_jenkins
Docker 101: - /