Ho un Dockerfile (https://gist.github.com/hasMobi/e198555704ee57e84399) che hanno questi due comandi in sequenza:Dockerfile - la rimozione di un file in un comando RUN, è ancora presente nel prossimo comando RUN
RUN rm -frv /usr/share/nginx/html/*
RUN ls /usr/share/nginx/html/
Quando guardo la console mentre immagine hte costruzione, posso chiaramente vedere 2 file che vengono rimossi da quella cartella, ma quando il comando successivo RUN viene, elenca il contenuto della directory ei file sono ancora lì ?:
cosa sta succedendo qui? Capisco che ogni comando RUN crea un layer separato e uno è isolato dall'altro, ma non è il secondo comando RUN che dovrebbe ereditare il file system nello stato esatto in cui si trovava nel precedente comando RUN (con i 2 file mancanti)?
Se si dovesse modificare la riga 12 del file docker in modo che sia: 'RUN rm -frv/usr/share/nginx/html/* && ls/usr/share/nginx/html /', quale output si ottiene? Sto solo cercando di isolare se il problema riguarda il tuo comando, o se è con i livelli dell'immagine che non si creano correttamente l'uno sull'altro – CtheGood
ho riscontrato lo stesso problema e alla fine ho capito che i file che stavo cercando di rimuovere erano definiti come all'interno di un volume dall'immagine di base Dockerfile, quindi il volume veniva ricreato in ogni livello. Dalla [documentazione Docker] (https://docs.docker.com/engine/reference/builder/#volume): 'Se qualche passo di costruzione modifica i dati all'interno del volume dopo che è stato dichiarato, tali modifiche saranno scartato. –