以下命令中的 .build-deps
是什么?我找不到高山文档中的解释。这是一个预定义的文件吗?在许多Dockerfiles中看到此引用。
RUN apk add --no-cache --virtual .build-deps
gcc
freetype-dev
musl-dev
RUN pip install --no-cache-dir <packages_that_require_gcc...>
RUN apk del .build-deps
如果您看到文档
-t, --virtual NAME Instead of adding all the packages to 'world', create a new
virtual package with the listed dependencies and add that
to 'world'; the actions of the command are easily reverted
by deleting the virtual package
这意味着您安装软件包时,这些软件包不会添加到全局软件包中。而且这种变化很容易恢复。因此,如果我需要GCC来编译程序,但是一旦编译了程序,我就不再需要GCC。
我可以在虚拟软件包及其所有依赖项中安装GCC以及其他必需的软件包,并且所有内容都可以删除此虚拟软件包名称。以下是示例用法
RUN apk add --virtual mypacks gcc vim
&& apk del mypacks
下一个命令将删除使用第一个命令安装的所有18个软件包。
在Docker中,必须将其作为单个RUN
命令执行(如上所述),否则将不会减小图像大小。
.build-deps
是一个任意名称 调用a&quot'虚拟软件包。在Alpine,您将在其中添加软件包。
它创建了一个额外的"世界"包装,您需要在有限的时间内(例如,用于构建其他内容的编译器)。
它的主要目的是保持图像尽可能瘦和轻便,因为一旦使用这些包装,您就可以轻松地摆脱它。
请记住,如果您想实现轻量级的主要目的,则应将其包含在同一RUN
中。