如何更快地构建 Docker 个图像
How to build Docker images quicker
我目前正在构建一个 docker 图像并 运行 将容器 运行 用于我正在处理的 Python 应用程序的一些测试。目前 Dockerfile 从主机复制文件,将工作目录设置为那些复制的文件,运行s a sudo apt-get
并安装 pip,最后 运行s 来自 [=13 的测试=]. 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-get
和 apt-get install pip
.我的主要想法是构建一个已经带有 pip 的图像,然后从那个图像构建这个图像。
Docker 如果可以,使用缓存层构建。通过添加您已更改的文件,它会使所有后续规则的缓存无效。将 apt 命令放在第一位,这些命令只会在您第一次构建时 运行。有关详细信息,请参阅 this blog。
我目前正在构建一个 docker 图像并 运行 将容器 运行 用于我正在处理的 Python 应用程序的一些测试。目前 Dockerfile 从主机复制文件,将工作目录设置为那些复制的文件,运行s a sudo apt-get
并安装 pip,最后 运行s 来自 [=13 的测试=]. 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-get
和 apt-get install pip
.我的主要想法是构建一个已经带有 pip 的图像,然后从那个图像构建这个图像。
Docker 如果可以,使用缓存层构建。通过添加您已更改的文件,它会使所有后续规则的缓存无效。将 apt 命令放在第一位,这些命令只会在您第一次构建时 运行。有关详细信息,请参阅 this blog。