Python 3.x Docker容器中的Jenkins-如何安装自定义Python库?
所以,在构建了一个管道之后,我意识到我需要一些自定义库来编写一个将从SCM中提取的python脚本。为了在Docker中安装Jenkins,我使用了以下教程: 像这样:Python 3.x Docker容器中的Jenkins-如何安装自定义Python库?,python-3.x,docker,jenkins,Python 3.x,Docker,Jenkins,所以,在构建了一个管道之后,我意识到我需要一些自定义库来编写一个将从SCM中提取的python脚本。为了在Docker中安装Jenkins,我使用了以下教程: 像这样: docker run \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.s
docker run \
-u root \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
现在,我要说我不是Docker大师,但我知道Dockerfile允许传递Python的库安装。但是,因为我正在从dockerhub中提取docker映像,所以我不确定是否可以添加“RUN pip install”作为参数。也许有人会有另一种方法
感谢您的帮助
编辑1:以下是第一位评论者建议的输出:
Step 1/6 : FROM jenkinsci/blueocean
---> b7eef16a711e
Step 2/6 : USER root
---> Running in 150bba5c4994
Removing intermediate container 150bba5c4994
---> 882bcec61ccf
Step 3/6 : RUN apt-get update
---> Running in 324f28f384e0
/bin/sh: apt-get: not found
The command '/bin/sh -c apt-get update' returned a non-zero code: 127
您可以创建Dockerfile
FROM jenkins:latest
USER root
RUN apt-get update
RUN apt-get install -y python-pip
# Install app dependencies
RUN pip install --upgrade pip
您可以使用
docker build -t jenkinspython .
与Hemant Sing的答案相似,但有两个稍有不同 首先,创建一个唯一的目录:mkdir foo “cd”到该目录并运行: docker构建-f jenkinspython 其中,Python包含:
FROM jenkins:latest
USER root
RUN apt-get update
RUN apt-get install -y python-pip
# Install app dependencies
RUN pip install --upgrade pip
请注意,我的更改是-f,而不是-t。请注意,构建输出确实包含:
步骤5/5:运行pip安装--升级pip
--->在d460e0ebb11d中运行
收集点
正在下载https://files.pythonhosted.org/packages/5f/25/e52d3f31441505a5f3af41213346e5b6c221c9e086a166f3703d2ddaf940/pip-18.0-py2.py3-none-any.whl (1.3MB)
安装收集的软件包:pip
找到现有安装:pip 9.0.1
未在/usr/lib/python2.7/dist-packages、外部环境/usr卸载pip
已成功安装pip-18.0
拆卸中间容器d460e0ebb11d
--->b7d342751a79
已成功构建b7d342751a79
因此,现在已经构建了映像(在我的例子中是b7d342751a79),启动它并验证pip确实已经更新:
$ docker run -it b7d342751a79 bash
root@9f559d448be9:/# pip --version
pip 18.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
现在您的映像已经安装了pip,因此您可以随意安装所需的任何疯狂软件包:)错误:
/bin/sh: apt-get: not found
The command '/bin/sh -c apt-get update' returned a non-zero code: 127
观察:
检查以上内容。尝试了它,但它没有按计划工作。您使用该过程的输出编辑了您的问题。但是我们看到您使用的是
jenkinsci/blueocean
,而不是jenkins:latest
(或者我建议的jenkins/jenkins:latest
),它似乎不是基于debian的。基于jenkinsci/blueocean
的图像的解决方案是什么?