2016-10-11 5 views
3

各ドッカーファイルにいくつかの共通レイヤーが含まれるいくつかのイメージを作成します。そのすべてが混在しており、すべての画像に一貫性のないシーケンスがあります。 など。いくつかは、それらの上に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 

答えて

1

  1. 現在、機能などを含む何もありません。 https://github.com/docker/docker/issues/735

  2. ベスト・プラクティスは、すべてのパッケージをインストールするための "apt-getのRUNが& &はapt-getを-yをインストールアップデート" を使用することをお勧めします。しかし、メンテナンス性のためにパッケージインストール(パッケージfooやパッケージバーなど)を分離するために同じ手法を使用することはできません。これは、レイヤの数を最小限に抑えることとのトレードオフです。 https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/#/minimize-the-number-of-layers(それとして異なる層を識別し、ビルドキャッシュがどのように動作するかも参照)

は、いくつかのリードポインタのためにあなたに@Sriをありがとうございます。

2

Dockerには基本イメージの概念があります。これはDockerfileの "FROM < base-image>"として提供されます。これはDockerfileの最初の行にする必要があります。基本イメージにはすべてのコモンズを含めることができ、個々のコンテナは特定の機能を処理できます。さらに読書に基づいて

+0

こんにちは@Sri、私はベースイメージと "FROM"指示を認識しています。私の質問としては、レイヤーがスタックの最下部(またはそのすぐ上)に直接存在しないシナリオを描いていますが、ありがとうございました。 – TalBeno

+0

"\"を使用すると、サポートされます。 – Sri

+0

もう一度ありがとうございます。あなたはそれを使用しているドキュメンテーションまたは例にリンクしていただけますか? – TalBeno

関連する問題