fornire due immagini docker dallo stesso file dockerfile

Sto impostando una creazione automatica da cui vorrei produrre 2 immagini.

L'utilità è nella costruzione e nella distribuzione di una libreria: – un'image con le dependencies che verranno riutilizzate per la costruzione e il test su Travis – un'image per fornire le librerie software installate

Fondamentalmente, devo essere in grado di spingere un'image del contenitore in un certo punto (prima di build) e una dopo (dopo la costruzione e l'installazione).

È ansible? Non ho trovato niente di rilevante nei documenti di Dockerfile.

Puoi farlo usando le build di Docker Multi Stage. Avere due file Docker

Dockerfile

FROM alpine RUN apk update && apk add gcc RUN echo "This is a test" > /tmp/builtfile 

Dockerfile-prod

 FROM myapp:testing as source FROM alpine COPY --from=source /tmp/builtfile /tmp/builtfile RUN cat /tmp/builtfile 

build.sh

 docker build -t myapp:testing . docker build -t myapp:production -f Dockerfile-prod . 

Quindi per spiegare ciò che facciamo è build l'image con le dependencies in primo luogo. Quindi, nel nostro secondo Dockerfile-prod , includiamo solo una FROM della nostra image precedente. E copia il file costruito all'image di produzione.

Uscita tronca dalla mia generazione

 [email protected]:~/so$ ./build.sh Step 1/3 : FROM alpine Step 2/3 : RUN apk update && apk add gcc Step 3/3 : RUN echo "This is a test" > /tmp/builtfile Successfully tagged myapp:testing Step 1/4 : FROM myapp:testing as source Step 2/4 : FROM alpine Step 3/4 : COPY --from=source /tmp/builtfile /tmp/builtfile Step 4/4 : RUN cat /tmp/builtfile This is a test Successfully tagged myapp:production 

Per ulteriori informazioni, fare riferimento a https://docs.docker.com/engine/userguide/eng-image/multistage-build/#name-your-build-stages