2016-12-21 41 views
0

我似乎無法讓詹金斯在啓動時將預裝插件複製到預期的/var/jenkins_home/plugins目錄中,如here所記錄。Jenkins Docker容器沒有將預先安裝的插件複製到JENKINS_HOME開始

我使用的是一個非常基本的Dockerfile:

FROM jenkins:alpine 
USER root 
RUN /usr/local/bin/install-plugins.sh ssh-agent 
USER jenkins 

當我建立了集裝箱,它說成功安裝插件和我運行容器後:

  • 插件不會出現在Web控制檯中並重新啓動不會修復該問題 。
  • /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` 

回答

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是在同一文件夾ALS你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 

或者檢查webconsole。 greenballs插件很容易驗證。成功建立後,你會得到一個綠色的球而不是藍色的。

+0

感謝您的答覆,這是我的方法完全有效的替代品。兩種方法都應該有效,但事實證明我做的事很愚蠢: - /看到我的答案。 – FoxMulder900

-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 

泊塢窗101: -/