2016-01-18 21 views
19

Przeczytałem w dokumentacji dokowania, w jaki sposób można użyć instrukcji ONBUILD, ale nie jest to wcale jasne.
Czy ktoś może mi to wyjaśnić?Dockerfile ONBUILD instrukcja

+0

jaka część [dokumentacja] (https://docs.docker.com/engine/reference/builder/#onbuild) Cię nie rozumiem? 'Jest to użyteczne, jeśli budujesz obraz, który będzie używany jako baza do budowania innych obrazów' –

+0

Ale co mogę z tym zrobić. Proszę podać mi przykład. –

+1

Dokumentacja ma również przykład. Najpierw możesz utworzyć własny plik dokowanego obrazu z wymaganymi bibliotekami systemu operacyjnego: curl, gd, etc i dodaj instrukcję onbuild, aby później dodać kod źródłowy. przykład 'onbuild add src /' Później utworzysz kolejny plik dockerfile, ale użyjesz wcześniej utworzonego obrazu (instrukcja FROM) i ułożysz na nim kod źródłowy. Masz więc obraz z zamrożonymi bibliotekami poziomów systemu operacyjnego i kodem źródłowym. –

Odpowiedz

28

Urządzenie ONBUILD intruction jest bardzo przydatne do automatyzacji kompilacji wybranego stosu oprogramowania.

Przykład

The Maven container jest przeznaczony do opracowania programu Java. Magicznie wszystko Dockerfile Twojego projektu musi zrobić, to odniesienie pojemnik baza zawierająca intructions ONBUILD:

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

Podstawa obraz na Dockerfile mówi wszystko

FROM maven:3-jdk-8 

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

ONBUILD ADD . /usr/src/app 

ONBUILD RUN mvn install 

Jest to obraz bazowy, który ma zainstalowany zarówno Java i Maven i seria instrukcji do kopiowania plików i uruchamiania Mavena.

Poniższa odpowiedź daje przykładu Java