Domanda

Voglio aggiungere un archivio (.tar.gz) e disimballare durante la creazione dell'immagine utilizzando un dockerfile.

ADD archive.tar.gz /archive.tar.gz
RUN tar xzf archive.tar.gz
.

Quando voglio disimballare l'archivio, ottengo il messaggio seguente:

tar: /archive.tar.gz: Cannot read: Is a directory
tar: At beginning of tape, quitting now
tar: Error is not recoverable: exiting now
.

Che non ha alcun senso per me, dal momento che il file archive.tar.gz non è una directory.

È stato utile?

Soluzione

Dopo aver eseguito un commit intermedio dell'immagine Docker ho potuto vedere, che /archive.tar.gz è in effetti una directory. Ciò significa che Docker estrae automaticamente gli archivi durante l'aggiunta durante la creazione dell'immagine.

Ora potrei anche trovare questo documentato in Documentazione Docker .

(Modifica: file, E.G. .sql.gz, non sono decompressi sull'aggiunta)

Altri suggerimenti

Se si desidera che l'archivio rimanga come utilizzare COPY, non ADD.

Per gli altri che hanno funzionato in questo problema più recentemente quando si fa riferimento remoto URL con i loro comandi ADD, questo è un problema con Docker 17.06.0-ce (2017-06-28).

Da Docker Note di rilascio :

.

Nota: Docker 17.06.0 ha un problema nel generatore di immagini che causa una modifica del comportamento dell'iscrizione di istruzioni di Dockerfile quando si fa riferimento a un file remoto .tar.gz.Il problema sarà fissato in Docker 17.06.1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top