各ドッカーファイルにいくつかの共通レイヤーが含まれるいくつかのイメージを作成します。そのすべてが混在しており、すべての画像に一貫性のないシーケンスがあります。 など。いくつかは、それらの上にjavaを持つ必要があります、私は他のdockerfilesで参照されるビルディングブロック(レイヤー)として以下の行(公式のJava 8ドッカーファイルから取られた)を定義したいと思います。ハウツー:ドッカーファイルレイヤーの再利用/参照
場合によっては、再利用したいレイヤーが複数ある場合もあります。この要件は本来再帰的です(ビルディングブロックで構成されたビルディングブロック)。
RUN \
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
add-apt-repository -y ppa:webupd8team/java && \
apt-get update && \
apt-get install -y oracle-java8-installer && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/oracle-jdk8-installer
これは現在Dockerによってサポートされていますか?インストールすることをお勧めしますか? Javaを別の方法でレイヤーとして...他のインストールとマージする必要がありますか(イメージを最小限に保つため)?このようなシナリオでのベストプラクティスはどうですか?
=========== UPDATE ==============
サポートされていないなど、/参照の機能のように思えます。しかし、私はまだベストプラクティスについてはよく分からないです...
@Sriは、ベストプラクティスに以下の指摘:それは& & apt-getを更新し、「apt-getをRUNを使用することをお勧めしている https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#run
をinstall -y "を指定します。
しかし、異なるパッケージに異なるレイヤーを使用することを推奨していないことを意味しますか?以下の例のようになります。
RUN apt-get update && apt-get install -y package-foo
RUN apt-get update && apt-get install -y package-bar
こんにちは@Sri、私はベースイメージと "FROM"指示を認識しています。私の質問としては、レイヤーがスタックの最下部(またはそのすぐ上)に直接存在しないシナリオを描いていますが、ありがとうございました。 – TalBeno
"\"を使用すると、サポートされます。 – Sri
もう一度ありがとうございます。あなたはそれを使用しているドキュメンテーションまたは例にリンクしていただけますか? – TalBeno