繁体   English   中英

如何将软件或其他软件包添加到docker容器中?

[英]How can I add software or other packages to a docker container?

我从这个码头集线器中拉出了jenkins容器:

docker pull jenkins

容器运行,我可以访问Jenkins UI:

http://localhost:8080

我的问题是:

如果我想能够创建一个从github repo中获取的jenkins作业,并且我想从该repo的一个测试文件中运行一些python测试,我该如何安装额外的软件包,如virtualenvwrapper, pip, pytest, nose, selenium等?

似乎docker容器不与本地主机文件系统共享任何引用。

如何在此运行容器中安装此类软件包?

谢谢

您需要在docker container build time安装所有依赖项。

你可以让你自己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中所做的事情,并将相关部分添加到dockerfile,添加一些RUN步骤来运行jenkins。

遇到了这个类似问题的页面 ,虽然它也将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

我强烈建议你阅读这篇文章。 它非常棒。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM