web-dev-qa-db-ja.com

apk add --virtualコマンドの.build-depsとは何ですか?

次のコマンドの.build-depsとは何ですか? Alpineのドキュメントには説明がありません。これは事前定義されたファイルですか?これは多くの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
74
gdbj

ドキュメントを見る場合

  -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個のパッケージをすべて削除します。

136
Tarun Lalwani