2016-01-18 28 views
19

Ho letto sulla documentazione della finestra mobile come si può utilizzare l'istruzione ONBUILD, ma non è del tutto chiara.
Qualcuno può spiegarmelo per favore?Istruzioni Dockerfile ONBUILD

+0

Quale parte della [documentazione] (https://docs.docker.com/engine/reference/builder/#onbuild) si non capire? 'Questo è utile se stai costruendo un'immagine che sarà usata come base per costruire altre immagini ' –

+0

Ma cosa posso fare con quello. Per favore, fammi un esempio –

+1

La documentazione ha anche un esempio. Inizialmente è possibile creare il file immagine mobile personalizzato con le librerie OS richieste: arricciatura, gd, ecc. E aggiungere istruzioni su build per aggiungere in seguito il codice sorgente. esempio 'onbuild add src /' In seguito si crea un altro file docker ma si utilizza l'immagine creata in precedenza (istruzione FROM) e si accumula il codice sorgente su di esso. Quindi hai immagini con librerie a livello di OS e codice sorgente congelati. –

risposta

28

Il ONBUILD intruction è molto utile per automatizzare la compilazione dello stack software scelto.

Esempio

Il Maven container è progettato per compilare programmi Java. Magicamente tutto Dockerfile del progetto ha bisogno di fare è di riferimento del contenitore di base contenente le intructions ONBUILD:

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

L'immagine del Dockerfile di base dice tutto

FROM maven:3-jdk-8 

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

ONBUILD ADD . /usr/src/app 

ONBUILD RUN mvn install 

C'è un'immagine di base che ha installato Java e Maven e una serie di istruzioni per copiare i file ed eseguire Maven.

La risposta che segue mostra un esempio Java