2017-09-14 50 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