可能な限り最小の Docker イメージを作成しようとしているため、ベースを ubuntu から alpine に切り替えました。
については、必要なパッケージとともにインストールされる「依存関係」を最小限に抑えるためにapt
使用していました。 を渡す必要のある同等のフラグはありますか、それともこれがこのスリム化された OS のデフォルトの動作ですか?--no-install-recommends
apk
ベストアンサー1
いいえ、推奨パッケージをダウンロードするという同じ動作すら行わないので、同じフラグはないと思います。
--virtual
ただし、画像を小さく保つのに役立つ別のフラグがあります。
apk add --virtual somename package1 package2
その後
apk del somename
これは、ビルドにのみ必要で、後で実行するために必要ではないものに役立ちます。
add
、use、およびをdel
連鎖して実行する必要があることに注意してください。1つ RUN
コマンドを実行しないと、追加されたパッケージによって余分なイメージ レイヤーが作成され、最終的な Docker イメージが肥大化してしまい、基本的に目的が達成されなくなってしまいます。
たとえば、実行にはと が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 は「world」パッケージに追加されず、レイヤーが書き込まれる前に削除されます。
この質問は逆の質問をしています:apk add --virtual コマンドの .build-deps とは何ですか?