簡體   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