Question

Je souhaite ajouter une archive (.tar.gz) et décompressez-le lors de la création de l'image à l'aide d'un Dockerfile.

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

Lorsque je veux décompresser l'archive, j'obtiens le message suivant :

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

ce qui n'a aucun sens pour moi, puisque le fichier archive.tar.gz n'est pas un répertoire.

Était-ce utile?

La solution

Après avoir exécuté une validation intermédiaire de l'image Docker, j'ai pu voir que /archive.tar.gz c'est en effet un répertoire.Cela signifie que Docker extrait automatiquement les archives lors de leur ajout lors de la création de l'image.

Maintenant, je pourrais aussi trouver cela documenté dans documentation du menu fixe.

(modifier:fichiers, par ex. .sql.gz, ne sont pas décompressés lors de l'ajout)

Autres conseils

Si vous souhaitez que l'archive reste telle quelle, utilisez COPY, pas ADD.

Pour ceux qui ont rencontré ce problème plus récemment en faisant référence à télécommande URL avec leur ADD commandes, c'est un problème avec Docker 17.06.0-ce (2017-06-28).

Depuis Notes de version de Dockers:

Note:Docker 17.06.0 a un problème dans le générateur d'images provoquant une modification du comportement de l'instruction ADD de Dockerfile lors du référencement d'un fichier .tar.gz distant.Le problème sera résolu dans Docker 17.06.1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top