我从这个码头中心拉了jenkins容器:
docker pull jenkins
容器运行,我可以访问Jenkins UI:
http://localhost:8080
我的问题是:
如果我想能够创建一个从github repo中获取的jenkins作业,并且我想从该repo的一个测试文件中运行一些python测试,我该如何安装额外的包,例如{{1}等等?
看起来docker容器不与本地主机文件系统共享任何引用。
如何在此正在运行的容器中安装此类软件包?
由于
答案 0 :(得分:3)
您需要在docker container build time安装所有依赖项。
您可以从jenkins库中创建自己的Dockerfile
,然后将自定义内容放入其中。您的Dockerfile
可能看起来像
FROM jenkins:latest
MAINTAINER Becks
RUN apt-get update && apt-get install -y {space delimited list of package}
然后,你可以做点像......
docker build -t jenkins-docker --file Dockerfile .
docker run -it -d --name=jenkins-docker jenkins-docker
我可能没有正确编写所有语法,但这基本上就是你需要做的。如果您希望run
步骤启动jenkins,请按照现有Dockerfile
here中的操作进行操作,并将相关部分添加到dockerfile中,以添加一些RUN
运行jenkins的步骤。
遇到类似问题的this page,虽然它也将docker sock安装在另一个容器内,将一个容器连接到另一个容器。鉴于它是一个外部链接,这里是相关的dockerfile,
FROM jenkins:1.596
USER root
RUN apt-get update \
&& apt-get install -y sudo \
&& rm -rf /var/lib/apt/lists/*
RUN echo "jenkins ALL=NOPASSWD: ALL" >> /etc/sudoers
USER jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
这就是你如何把它搞砸了。
docker build -t myjenk .
...
Successfully built 471fc0d22bff
$ docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
-v $(which docker):/usr/bin/docker -p 8080:8080 myjenk
我强烈建议您阅读该帖子。它非常棒。