2016-01-18 22 views
19

ドッカー文書でONBUILD命令の使用方法を読みましたが、それはまったく明らかではありません。
誰かが私にそれを説明できますか?ドッカーファイルONBUILD命令

+0

を与えます理解していない? 'これは、他の画像を構築するためのベースとして使用される画像を構築する場合に便利です.'​​ –

+0

しかし、どうすればいいですか?私に例を挙げてください。 –

+1

ドキュメントにも例があります。 最初に、必要なOSライブラリ(curl、gdなど)を使用して独自のイメージドッカーファイルを作成し、後でソースコードを追加するためのonbuild命令を追加できます。例 'onbuild add src /' 後で別のドッカーファイルを作成しますが、以前に作成したイメージ(FROM命令)を使用してソースコードをスタックします。したがって、フリーズされたOSレベルのライブラリとソースコードを持つイメージがあります。 –

答えて

28

ONBUILD intructionは、選択したソフトウェアスタックの自動ビルドに非常に役立ちます。

Maven container

は、Javaプログラムをコンパイルするように設計されています。魔法Dockerfileを行うために必要なすべてのプロジェクトの参照はONBUILDのintructionsを含む基本コンテナです:

FROM maven:3.3-jdk-8-onbuild 
CMD ["java","-jar","/usr/src/app/target/demo-1.0-SNAPSHOT-jar-with-dependencies.jar"] 

ベースイメージのDockerfileはすべて

FROM maven:3-jdk-8 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

ONBUILD ADD . /usr/src/app 

ONBUILD RUN mvn install 

を伝えJavaとMav​​enの両方がインストールされているベースイメージがありますし、ファイルをコピーしてMavenを実行するための一連の指示。

次の答えはJavaの例にどの[ドキュメント](https://docs.docker.com/engine/reference/builder/#onbuild)の一部で、あなた