2016-04-01 10 views
14

Ho un Dockerfile per PHP come questo:Un file Docker può estenderne un altro?

FROM php:7-fpm 
ENV DEBIAN_FRONTEND noninteractive 

RUN apt-get update && \ 
    apt-get install -y git libicu-dev libmagickwand-dev libmcrypt-dev libcurl3-dev jpegoptim 
RUN pecl install imagick && \ 
    docker-php-ext-enable imagick 

RUN docker-php-ext-install intl 
RUN docker-php-ext-install pdo_mysql 
RUN docker-php-ext-install opcache 
RUN docker-php-ext-install mcrypt 
RUN docker-php-ext-install curl 
RUN docker-php-ext-install zip 

e mi piacerebbe creare un altro Dockerfile, sulla base del primo, ma con alcune estensioni PHP aggiunto (fini dev): Xdebug e altri animali .

Posso creare un Dockerfile "dev" che estenda il mio Dockerfile principale (senza riscriverlo)?

+0

Sì, è possibile farlo. –

+1

Non ho trovato nel doc. – Sylvain

+4

Puoi certamente basare il tuo nuovo file docker sull'immagine che hai creato dal primo – Jimmy

risposta

10

Questo è esattamente ciò che sta facendo il tuo FROM php:7-fpm: estendere il file Docker dall'immagine php (con il tag 7-fpm) con il contenuto del tuo Dockerfile.

Così, dopo la costruzione di un immagine dal tuo Dockerfile:

docker build -t my-php-base-image . 

È possibile estendere che con la creazione di un nuovo Dockerfile che inizia con:

FROM my-php-base-image 
+12

Cosa succede se hai una finestra mobile-componi il setup dove vuoi basare un container su un altro sul livello di file docker? L'immagine non è un'opzione qui se più versioni dell'ambiente devono essere eseguite su una macchina. – Niksac

+0

Non sono sicuro di aver capito la tua domanda. Suggerirei di postarla come una domanda reale e includere un esempio di ciò che vorresti ottenere. Ciò renderà probabilmente più facile per le persone suggerire soluzioni. – larsks