2017-07-15 189 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/ –

相关问题