【问题标题】:How to build Docker images quicker如何更快地构建 Docker 镜像
【发布时间】:2016-04-02 22:53:20
【问题描述】:

我目前正在构建一个 docker 映像并运行容器以在其中为我正在处理的 Python 应用程序运行一些测试。目前,Dockerfile 从主机复制文件,将工作目录设置为那些复制的文件,运行 sudo apt-get 并安装 pip,最后从 setup.py 运行测试。 Dockerfile 如下所示。

FROM ubuntu

ADD . /home/dev/ProjectName

WORKDIR /home/dev/ProjectName

RUN apt-get update && \
    apt-get install -y python3-pip && \
    python3 setup.py test

我很好奇是否有更传统的方法可以避免每次我想运行测试时都运行apt-getapt-get install pip。我的主要想法是构建一个上面已经有 pip 的图像,然后从那个图像构建这个图像。

【问题讨论】:

  • 除了已接受的答案之外,任何时候您想对 Dockerfile 进行更改但希望最小化构建时间,请将更改添加到 Dockerfile 的末尾,以便 Docker 尽可能多地重用缓存。 Docker 将从所做更改的第一行开始重建。

标签: python docker dockerfile


【解决方案1】:

如果可以的话,Docker 会使用缓存层进行构建。通过添加您已更改的文件,它会使所有后续规则的缓存无效。将 apt 命令放在首位,这些命令只会在您第一次构建时运行。请参阅this blog 了解更多信息。

【讨论】:

  • 嗨@Kurt Stutsman,博客文章的链接不再可用,请您更新链接或将该帖子的摘要包含在您的答案中。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2017-12-22
  • 2017-10-20
  • 2020-10-06
  • 2021-02-27
  • 2017-10-03
相关资源
最近更新 更多