docker - 避免在每个Docker构建中重新安装软件包

标签 docker docker-build

当我构建需要TensorFlow(导入tensorflow)的新python应用程序的镜像时,每次docker安装520 MB的TensorFlow时。

如何避免这种情况?意味着只下载一次tensorflow并在构建许多图像时使用它?

Dockerfile

FROM python:3

WORKDIR /usr/src/app

COPY model.py .
COPY model_08015_07680.h5 .
COPY requirements.txt .
COPY images .
COPY labels.txt .
COPY test_run.py .

RUN pip install --no-cache-dir -r requirements.txt

CMD ["python","./test_run.py"]

requirements.txt
numpy
opencv-python
tensorflow

最佳答案

请使用下面经过优化的Dockerfile,因为它不会一次又一次安装依赖项,直到/除非您更改requirements.txt

FROM python:3

WORKDIR /usr/src/app

#Copy Requirements
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

#Copy everything later, as below parts will be changing and above part will be used from cache
COPY model.py .
COPY model_08015_07680.h5 .
COPY images .
COPY labels.txt .
COPY test_run.py .


CMD ["python","./test_run.py"]

关于docker - 避免在每个Docker构建中重新安装软件包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62231980/

相关文章:

docker - 读取Docker容器内主机的IP地址

docker - 忽略 .dockerignore 中的所有 .git 文件夹

shell - 如何从 docker 容器内的文件在 dockerfile 中设置系统范围的环境变量?

对于嵌套的忽略文件,Docker 构建有时会在 "file not found or excluded by .dockerignore"上失败

docker - 从 Docker Hub 中删除图像标签?

node.js - 如何在Docker中使用永远的CLI?

azure - 我可以将 docker 容器部署到 Azure Webapp

Docker容器-向其中注入(inject)敏感数据的最佳实践是什么

docker-build - 无法使用 Dockerfile 构建镜像

docker - gitlab ci无法使用shell执行器找到docker buildx命令