2015-07-08 13 views
7

Esiste un modo per creare più immagini gestendo due file di docker diversi? Nel mio caso voglio mantenere due file di dati Dockerfile_app1 Dockerfile_app2 nel contesto della build.Costruisci più immagini da più file di dati dock

docker build -t <image_name> . 

È possibile che questo prenderà la dockerfile nominato come Dockerfile

docker build -t <image_name> Dockerfile_app1 

Questo non sta lavorando anche per il mio caso, come si aspetta il nome del file come Dockerfile.

ho cercato da finestra mobile-composizione costruisci anche Comunque non funziona.

app1: 
    build: Dockerfile_app1 
    ports: 
    - "80:80" 
app2: 
    build: Dockerfile_app2 
    ports: 
    - "80:80" 
+0

La direttiva 'build' nel tuo' docker-compose.yml' si aspetta una directory, non un nome di file. Il comando 'docker build' ti permette di specificare un nome diverso da' Dockerfile'; controlla la pagina man o l'output di aiuto (e assicurati di avere una versione recente di Docker). – larsks

risposta

19

Basta utilizzare l'argomento -f-docker build per specificare il nome del Dockerfile da utilizzare:

$ docker build -t <image_name> -f Dockerfile_app1 . 
... 

O in Compose è possibile utilizzare il tasto dockerfile dalla versione 1.3 in poi:

app1: 
    build: . 
    dockerfile: Dockerfile_app1 
    ports: 
    - "80:80" 
app2: 
    build: . 
    dockerfile: Dockerfile_app2 
    ports: 
    - "80:80" 

Si noti che la chiave build è per il contesto di compilazione, non il nome del file Docker (quindi ha cercato una directory denominata Dockerfile_app1 nel tuo caso).

+0

Grazie Adrian, funziona se utilizzo la finestra mobile build -t -f opzione Dockerfile_app1. Comunque sto ricevendo "Opzione di configurazione non supportata per il servizio app2: messaggio 'dockerfile'" se sto provando a costruirlo usando la build di docker-compose. Sto facendo qualcosa di sbagliato? – Mahattam

+0

Quale versione di Compose stai usando? Probabilmente hai solo bisogno di aggiornare. 'dockerfile' dovrebbe essere corretto: https://docs.docker.com/compose/yml/ –

+1

Avevo 1.2.0 che non funzionava, dopo l'aggiornamento alla 1.3.1 funziona bene per me, grazie :) – Mahattam

Problemi correlati