2017-09-14 58 views
8

Co to jest .build-deps w następującym poleceniu? Nie mogę znaleźć wytłumaczenia w dokumentach Alpine. Czy jest to plik predefiniowany? Widać to w wielu plikach Docker.Co to jest .build-deps dla apk add --virtual command?

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 

Odpowiedz

16

Jeśli widzisz dokumentacji

-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 

Co to znaczy, po zainstalowaniu pakietów, te pakiety nie są dodać do globalnych pakietów. I tę zmianę można łatwo cofnąć. Więc jeśli potrzebuję gcc do kompilacji programu, ale po skompilowaniu programu nie potrzebuję już gcc.

Mogę zainstalować gcc i inne wymagane pakiety w pakietach wirtualnych i wszystkich jego zależnościach i wszystko można usunąć z tej wirtualnej nazwy pakietu. Poniżej jest przykład użycia

apk add --virtual mypacks gcc vim 
apk del mypacks 

Wszystkie 18 pakiety zainstalowane w pierwszym poleceniu zostanie usunięty, przy następnym poleceniu

+0

jasno Jestem ślepy nie widząc to w docs, ale to było wspaniałe wyjaśnienie, dlaczego to ważny. wielkie dzięki. – gdbj