回避できる絶対最小のDockerイメージを作成しようとしているので、ベースとしてのubuntuからAlpineに切り替えました。
apt
の場合、以前は--no-install-recommends
を使用して、目的のパッケージとともにインストールされる「依存関係」を最小限に抑えていました。 apk
と一緒に渡す必要のある同等のフラグはありますか、それともこれはこのスリム化されたOSのデフォルトの動作ですか?
いいえ、推奨パッケージをダウンロードするのと同じ動作をしないので、同じフラグがないと思います。
ただし、別のフラグがあります--virtual
これは画像を小さく保つのに役立ちます:
apk add --virtual somename package1 package2
その後
apk del somename
これは、ビルドのみに必要で、後で実行する必要のないものに役立ちます。
1つのRUNコマンドで実行する必要があることに注意してください。実行しないと、前のDockerイメージレイヤーから削除できません。
例えばif pything1
ニーズpackage1
およびpackage2
を実行しますが、必要なのはpackage3
およびpackage4
インストールビルド中、これが最適です。
RUN apk add --no-cache package1 package2
RUN apk add --no-cache --virtual builddeps package3 package4 && \
pip install pything1 && \
apk del builddeps
パッケージ3と4は「ワールド」パッケージには追加されませんが、レイヤーが書き込まれる前に削除されます。
この質問は、逆の質問をします: apk add --virtualコマンドの.build-depsとは何ですか?