正确使用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
。 至于这个问题,这是没有关系的。