从Docker正确使用pip

时间:2017-07-26 08:20:41

标签: python docker pip

我想在容器中安装一些pip的软件包。执行此操作的简单方法如下:

FROM ubuntu:trusty
RUN apt-get update && \
    apt-get install python-pip <lots-of-dependencies-needed-only-for-pip-install>
RUN pip install <some-packages>

然而,这种方式我安装了许多不需要的依赖项,这会不必要地增加容器的大小。

我的第一个想法是这样做:

FROM ubuntu:trusty AS pip_install
RUN apt-get update && \
    apt-get install python-pip <lots-of-dependencies-needed-only-for-pip-install>
RUN pip install <some-packages>

FROM ubuntu:trusty
RUN apt-get update && \
    apt-get install python-pip <runtime-dependencies>
COPY --from=pip_install /usr/local/bin /usr/local/bin
COPY --from=pip_install /usr/local/lib/python2.7 /usr/local/lib/python2.7

这有效,但感觉就像一个解决方法。有没有更优雅的方式这样做?我想到了这样的事情:

FROM ubuntu:trusty AS pip_install
RUN apt-get update && \
    apt-get install python-pip <lots-of-dependencies-needed-only-for-pip-install>
RUN pip install <some-packages>
VOLUME /usr/local

FROM ubuntu:trusty
<somehow mount /usr/local from pip_install to /tmp/pip>
RUN apt-get update && \
    apt-get install python-pip <runtime-dependencies>
RUN pip install <from /tmp/pip> <some-packages>

这甚至可能吗?

我可以使用一些python图像,但在我的实际应用中,我派生自另一个图像,它本身来自ubuntu:trusty。至于这个问题,它就是重点。

0 个答案:

没有答案