gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:40:41 25 4
gpt4 key购买 nike

我已经像这样从 docker hub 中提取了 jenkins 容器:

docker pull jenkins

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

http://localhost:8080

我的问题是:

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

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

如何在这个正在运行的容器中安装此类包?

谢谢

最佳答案

您需要在 docker 容器构建时安装所有依赖项。

您可以从 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

我强烈建议您阅读该帖子。太棒了。

关于python - 如何将软件或其他包添加到 docker 容器中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45181713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com