2015-06-09 14 views
32

Questo è un messaggio di errore ottengo quando si costruisce un'immagine Docker:non può eseguire RUN mkdir in un Dockerfile

Step 18 : RUN mkdir /var/www/app && chown luqo33:www-data /var/www/app ---> Running in 7b5854406120 mkdir: cannot create directory '/var/www/app': No such file or directory

Si tratta di un frammento di Dockerfile che causa l'errore:

FROM ubuntu:14.04 
RUN groupadd -r luqo33 && useradd -r -g luqo33 luqo33 

<installing nginx, fpm, php and a couple of other things> 

RUN mkdir /var/www/app && chown luqo33:www-data /var/www/app 
VOLUME /var/www/app 
WORKDIR /var/www/app 

"mkdir : impossibile creare la directory '/ var/www/app': Nessun file o directory "sembra così insensato - ovviamente non esiste tale directory. Voglio crearlo. Cosa c'è di sbagliato qui?

+0

Qui niente di specifico per Docker, btw - avresti lo stesso problema se esegui 'mkdir/var/www/app' su un sistema che non ha un'/var/www' senza di esso. –

risposta

62

Il problema è che /var/www non esiste o mkdir non è ricorsivo per impostazione predefinita, si aspetta che la directory padre immediata esista.

Usa:

mkdir -p /var/www/app 

... o installare un pacchetto che crea un /var/www prima di raggiungere questo punto della tua Dockerfile.

+0

Grazie per aver segnalato questo. A proposito, quale pacchetto intendi crearebbe '/ var/www'? – luqo33

+0

Questa è una domanda sulla confezione di Ubuntu 14.04; Non sono un esperto lì. –

14

Durante la creazione di sottocartelle appesi fuori dal non-esistente dir genitore (s) è necessario passare l'opzione -p per mkdir ... Aggiorna il Dockerfile con

RUN mkdir -p ... 

Ho provato questo e la sua corretta

Problemi correlati