为了账号安全,请及时绑定邮箱和手机立即绑定

无法继续进行 docker 构建

无法继续进行 docker 构建

不负相思意 2024-01-27 16:04:54
我正在尝试使用 docker 构建一个图像,但如果我做了一些更改并再次构建它,那么它会从头开始。除了从我已经做出的更改中继续。sudo docker build -t flask-app .我不知道为什么,但它没有使用缓存更新示例初始 dockerfileFROM python:3.6#working dirWORKDIR /app#copying contentCOPY . /app#Requirement installationRUN pip3 install -r requirements.txt#Command to executeCMD [ "python3", "app.py" ]后来的dockerfileFROM python:3.6#working dirWORKDIR /app#copying contentCOPY . /app#Requirement installationRUN pip3 install -r requirements.txt#Port to exposeEXPOSE 8000#Command to executeCMD [ "python3", "app.py" ]希望它知道从 Expose 8000 继续,但它从头开始有什么建议吗?谢谢
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

复制命令#

要求安装后使用COPY . /app,因为Dockerfile也包含在其中,并且会被复制到/app。

Dockerfile 中的 COPY 命令允许您将一个或多个外部文件导入到 Docker 映像中。始终执行 COPY 命令以获得最新版本的外部文件。

如果第一个 COPY 命令上的所有外部文件的内容相同,则将使用层缓存,并且所有后续命令直到下一个 ADD 或 COPY 命令都将使用层缓存。

然而,如果一个或多个外部文件的内容不同,则所有后续命令将在不使用层缓存的情况下执行。

为了利用 Docker 中的层缓存,您应该以经常更改的步骤(例如 COPY)来构建 Dockerfile,使其位于 Dockerfile 文件的末尾。这将确保不会不必要地重建与执行相同操作相关的步骤。


查看完整回答
反对 回复 2024-01-27
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

COPY . /app

如果您传入的上下文有任何微小的变化,那么这一步将被重新评估。值得先复制requirements.txt,然后从中安装依赖项,然后复制其余部分,以有效地使用缓存。


查看完整回答
反对 回复 2024-01-27
  • 2 回答
  • 0 关注
  • 101 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信