Что такое.build-deps для apk add --virtual команда?

Что такое .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

Ответ 1

Если вы видите документацию

  -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 пакетов, установленных с первой командой.