如何使用pip从需求文件安装pkg而不重新安装

时间:2017-03-25 14:21:32

标签: docker pip

我正在尝试构建Docker镜像。我的 Dockerfile 是这样的:

FROM python:2.7
ADD . /code
WORKDIR /code
RUN pip install -r requirement.txt
CMD ["python", "manage.py", "runserver", "0.0.0.0:8300"]

我的 requirements.txt 文件如下:

wheel==0.29.0
numpy==1.11.3
django==1.10.5
django-cors-headers==2.0.2
gspread==0.6.2
oauth2client==4.0.0

现在,我的代码有一些变化,我需要 pandas ,所以我将它添加到requirement.txt文件中

wheel==0.29.0
numpy==1.11.3
pandas==0.19.2
django==1.10.5
django-cors-headers==2.0.2
gspread==0.6.2
oauth2client==4.0.0

pip install -r requirement.txt将安装该文件中的所有软件包,尽管之前已安装了几乎所有软件包。我的问题是如何只制作pip install pandas ?这将节省构建图像的时间。

谢谢

1 个答案:

答案 0 :(得分:1)

如果在使用docker build -t <your_image> .更改 requirement.txt 后重建图片,我想这是不可能的,因为每次docker运行docker build时,它都会从基础映像启动一个中间容器,这是一个新环境,因此pip显然需要安装所有依赖项。

您可以考虑在预先安装了公共依赖项的python:2.7上构建自己的基本映像,然后在您自己的基本映像上构建应用程序映像。一旦需要添加更多依赖项,请手动重新构建前一个基础映像,只安装额外的依赖项,然后可以选择docker push将其返回到您的注册表。

希望这可能会有所帮助: - )