无法继续进行 docker 构建

我正在尝试使用 docker 构建一个图像,但如果我做了一些更改并再次构建它,那么它会从头开始。除了从我已经做出的更改中继续。


sudo docker build -t flask-app .

我不知道为什么,但它没有使用缓存


更新


示例初始 dockerfile


FROM python:3.6


#working dir

WORKDIR /app


#copying content

COPY . /app


#Requirement installation

RUN pip3 install -r requirements.txt


#Command to execute

CMD [ "python3", "app.py" ]

后来的dockerfile


FROM python:3.6


#working dir

WORKDIR /app


#copying content

COPY . /app


#Requirement installation

RUN pip3 install -r requirements.txt


#Port to expose

EXPOSE 8000


#Command to execute

CMD [ "python3", "app.py" ]

希望它知道从 Expose 8000 继续,但它从头开始有什么建议吗?谢谢


不负相思意
浏览 43回答 2
2回答

qq_花开花谢_0

复制命令#要求安装后使用COPY . /app,因为Dockerfile也包含在其中,并且会被复制到/app。Dockerfile 中的 COPY 命令允许您将一个或多个外部文件导入到 Docker 映像中。始终执行 COPY 命令以获得最新版本的外部文件。如果第一个 COPY 命令上的所有外部文件的内容相同,则将使用层缓存,并且所有后续命令直到下一个 ADD 或 COPY 命令都将使用层缓存。然而,如果一个或多个外部文件的内容不同,则所有后续命令将在不使用层缓存的情况下执行。为了利用 Docker 中的层缓存,您应该以经常更改的步骤(例如 COPY)来构建 Dockerfile,使其位于 Dockerfile 文件的末尾。这将确保不会不必要地重建与执行相同操作相关的步骤。

芜湖不芜

COPY . /app如果您传入的上下文有任何微小的变化,那么这一步将被重新评估。值得先复制requirements.txt,然后从中安装依赖项,然后复制其余部分,以有效地使用缓存。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python