2017-07-15 190 views
5

我想在Docker容器中運行Jenkins。一切都好。我可以像這樣運行它:docker run -d --name jenkins -t -i -p 49001:8080 jenkins我也可以添加持久性存儲。問題出現在我創建管道時可能必須執行docker命令(buildpush)。首先,錯誤是Docker沒有安裝在系統上。是的,預計。然後我開始搜索並找出如何在容器中運行碼頭工人(傳遞2個持續卷):docker run ... -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -p 49001:8080 jenkinsJenkins在Docker容器中(運行docker管道)

這會運行,但有一些例外。容器中有docker命令,但是當我嘗試運行它時,它會引發異常:docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory

我該如何解決此問題?在Docker中安裝Jenkins並運行Docker的正確方法是什麼?我認爲有2種方式:

  1. 的一個,我做的 - 使用套接字
  2. 我可以公開的泊塢窗的API,允許連接和運行命令

其實是值得運行詹金斯在Docker中?我試圖從apt-get手動安裝丟失的庫它的工作原理,但我知道這不是正確的方式。

+0

會https://www.vip-consult.solutions/post/easy-docker-swarm-jenkins-continuous-deployment-at-scale#content幫助嗎? – VonC

回答

6

您必須安裝libltdl-dev爲了讓所有工作正常。創建一個Dockerfile,看起來像這樣:

FROM jenkins:latest 

USER root 
RUN apt-get update \ 
     && apt-get upgrade -y \ 
     && apt-get install -y sudo libltdl-dev \ 
     && rm -rf /var/lib/apt/lists/* 
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers 

USER jenkins 
# Here you can install some Jenkins plugins if you want 
+0

我創建了一個簡單的解決方法圖片 https://hub.docker.com/r/jesusperales/jenkins-docker-run-inside/ –

相關問題