この公式のドッカーでは、userguideのアドバイスの1つがDockerfileのレイヤーの数を最小限に抑えていました。Dockerfileのレイヤーの数を最小限にする
私はそれが画像の合計サイズ減少であることを思ったが、層の最大の制限についての何かを見つけました:Number of commands in Dockerfile
しかし、理由のキャッシングの別々のコマンドを分割するために非常に有用です。例えば
、このようDockerfileを持っている:これはそう、一度構築されて一層のみ、です
# https://hub.docker.com/_/php/
FROM php:5.5.23-fpm
RUN /scripts/base.sh \
&& /scripts/composer.sh \
&& /scripts/mbstring.sh \
&& /scripts/bcmath.sh \
&& /scripts/mcrypt.sh \
&& /scripts/sockets.sh \
&& /scripts/zip.sh \
&& /scripts/phpredis.sh \
&& /scripts/cleanup.sh
、それがキャッシュされます。しかし、たとえばphpredisのバージョンを変更すると、各ステップが再び構築されます。
別々のRUN命令に分割することはできますか?それは私に助言することができますか?
これは抽象的な問題を解決しません。各* .shは別々に更新することができます。 'cleanup.sh'は例外ではありません。 – Aliance
あなたはいくつかの実行することができます、私は恐れているより良い方法はありません – user2915097