2015-10-14 106 views
1

我在一個Docker容器中安裝了Jenkins,並且它不會自動運行。 我必須運行/etc/init.d/jenkins啓動。然後一切都很順利,很好。 我遵循的所有教程都說,安裝後應該默認運行,但不是。Jenkins在Docker容器中安裝後不會自動運行

有什麼想法?

+0

發佈您的docker文件。 –

+0

爲了學習Docker,我創建了一個沒有容器的容器。據我瞭解,它確實可以幫助其他人調試我的容器。我會爲我的圖像創建一個v2。 –

回答

2

如果你喜歡在各種詹金斯圖像的Dockerfile(like the official _/jenkins one),你會發現爲什麼詹金斯「自動運行」:

COPY jenkins.sh /usr/local/bin/jenkins.sh 
ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"] 

tini是採用殭屍進程的腳本,這是我之前在「Use of Supervisor in docker」中提出的一個問題)

所以它取決於Dockerfile的ENTRYPOINT:它應該包含啓動Jenkins的正確命令。


你也可以在你的搬運工文件或者使用監督員或入口點。

無需使用主管:這是tini在官方圖像中的作用。

如果我使用配置爲自動運行jenkins的官方jenkins映像,我想我可以安裝Locustio,然後用'docker exec'啓動它,對嗎?

在相同的圖像,你不會安裝Locusto,否則你不會用docker exec在詹金斯容器中運行它(docker exec是打開的會話主要用於調試的目的)

你會使用一個Locust.io image運行一個第二個集裝箱。
如果jenkins需要locust.io,你可以先運行locust.io,然後運行jenkins --link directive

+0

感謝VonC,我閱讀了你提到的答案,但我不能承認我完全理解它,因爲我不掌握Docker,而且它還是內部工作。我從ubuntu創建了我的容器:latest,並通過組件構建它。我想要一個容器來封裝Jenkins的CI和Locustio(負載測試)服務器。如果我理解正確,我應該使用官方容器嗎?通過指定一個入口點不要限制容器運行一個服務?我應該在單獨的容器中運行2個服務嗎? –

+0

這就是爲什麼看到你的Dockerfile將在這裏幫助 – VonC

+0

我沒有使用Dockerfile。我手動做了。 :\ –

0

簡單就是在碼頭輪轂上使用jenkins官方圖片。你也可以在你的docker文件中使用管理員或入口點。

+0

如果我使用官方jenkins圖像,它被配置爲自動運行jenkins,我想我可以安裝Locustio並使用'docker exec '事後,對吧?我沒有接觸過主管。如果需要的話,我可以輕鬆地把它拿起來,如果你能給我提供一個不錯的鏈接。謝謝 –

+0

首先,你可以安裝任何東西。使用卷mountinh將jenkins docker運行到/ var/lib/jenkins到主機,然後安裝你想要的插件。對於下一次再次創建容器時,它將具有與已安裝的所有插件相同的設置。 –

相關問題