Question tar: Impossible de lire: est un répertoire dans docker


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

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

Quand je veux décompresser l'archive, je reçois 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.


18
2018-06-04 22:23


origine


Réponses:


Après avoir exécuté une validation intermédiaire de l'image du docker, j'ai pu voir que /archive.tar.gz 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 de docker.

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


25
2018-06-04 22:23



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


3
2017-09-06 01:12



Pour ceux qui ont rencontré ce problème plus récemment lors du référencement éloigné urls avec leur ADD commandes, c'est un problème avec Docker 17.06.0-ce (2017-06-28).

De Notes de sortie des dockers:

Remarque: Docker 17.06.0 présente 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.


1
2017-08-01 13:25