2017-09-14 401 views
8

以下命令中的.build-deps是什么?我无法在Alpine文档中找到解释。这是一个预定义的文件吗?见许多Dockerfiles中引用这个。什么是.build-deps for apk添加 - 虚拟命令?

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 

回答

16

如果你看到的文档

-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和其他必需的软件包安装在虚拟软件包及其所有依赖项中,并且可以删除此虚拟软件包名称。下面是使用例子

apk add --virtual mypacks gcc vim 
apk del mypacks 

与第一个命令安装所有18个包将被下一个命令

+0

清楚我瞎不是在文档见状被删除,但这是一个很好的解释,为什么它的重要。谢谢一堆。 – gdbj