在Jenkins Docker中升级Python

在Jenkins Docker中升级Python,python,docker,jenkins,Python,Docker,Jenkins,我现在有一个关于Jenkins和Python的docker图像 我做了一些类似的事情 FROM jenkins/jenkins:lts USER root RUN apt-get update && \ apt-get install -y python python-pip python3-pip && \ ... (and more stuff) ... (I also install gcloud sdk) WORKDIR /opt/app

我现在有一个关于Jenkins和Python的docker图像

我做了一些类似的事情

FROM jenkins/jenkins:lts
USER root
RUN apt-get update && \
    apt-get install -y python python-pip python3-pip && \
    ... (and more stuff)
... (I also install gcloud sdk)
WORKDIR /opt/app
RUN /usr/bin/env python3 -m pip install --upgrade pip \
    && /usr/bin/env python3 -m pip install pipenv==2018.10.13
RUN /usr/bin/env python -m pip install --upgrade pip \
    && /usr/bin/env python -m pip install pipenv==2018.10.13
RUN chown jenkins /opt/app -R
USER jenkins
但这将安装python 3.5.3()

我需要Python3.7(以及Python2.7.15)

因此,我正在尝试使用多个
FROM
的方法,如前所述。但是没有用

FROM python:2.7.15-stretch as py2
FROM python:3.7.2-stretch as py3
FROM jenkins/jenkins:lts as jenkins
我很确定这不太复杂。。。一旦你玩过它一次


因此,欢迎任何帮助。

它很有效!我喜欢这样:

FROM python:3.7.2-stretch as py3

FROM python:2.7.15-stretch as py2

FROM jenkins/jenkins:lts

USER root
COPY --from=py2 /usr/local/lib /usr/local/lib
COPY --from=py2 /usr/local/bin /usr/local/bin
COPY --from=py2 /usr/local/include /usr/local/include
COPY --from=py2 /usr/local/man /usr/local/man
COPY --from=py2 /usr/local/share /usr/local/share

COPY --from=py3 /usr/local/lib /usr/local/lib
COPY --from=py3 /usr/local/bin /usr/local/bin
COPY --from=py3 /usr/local/include /usr/local/include
COPY --from=py3 /usr/local/man /usr/local/man
COPY --from=py3 /usr/local/share /usr/local/share

RUN apt-get update && \
    ...

TL&DR:这是在Jenkins提供的docker映像上获取最新python的最佳方法

说明

创建包含以下内容的DockerFile:

FROM jenkins/jenkins:lts-alpine
USER root
RUN apk add python3 && \
     python3 -m ensurepip && \
     pip3 install --upgrade pip setuptools && \
     if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
     if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
     rm -r /root/.cache
RUN apk add pkgconf
RUN apk add build-base
RUN apk add python3-dev
RUN apk add postgresql-dev
RUN apk add postgresql-client

我不确定这里正在做什么。Python3.7真的安装了吗?这不起作用:python:加载共享库时出错:libpython3.7m.so.1.0:无法打开共享对象文件:没有这样的文件或目录