2878 votes

Docker copie vs ADD

Quelle est la différence entre le COPY et ADD des commandes dans un Dockerfile, et quand puis-je utiliser l'un plutôt que l'autre?


COPY <src> <dest>

L'instruction de COPIE de copie de nouveaux fichiers à partir d' <src> et les ajouter à le conteneur du système de fichiers au chemin de <dest>


ADD <src> <dest>

Le complément d'instruction va copier les nouveaux fichiers à partir d' <src> et les ajouter à la conteneur du système de fichiers au chemin de <dest>.

2784voto

icecrime Points 23650

Vous devriez vérifier l' ADD et COPY documentations pour une description exhaustive de leurs comportements, mais en un mot, la différence majeure est que l' ADD peut faire plus que COPY:

  • ADD permet <src> à être une URL
  • Si l' <src> paramètre de ADD est une archive de la comptabilisation d'un format de compression, il sera décompressé

726voto

CaikeSouza Points 428
<blockquote> <p>Identique à « ADD » mais sans le goudron et la manipulation d’url distante.</p> </blockquote> <p>Référence <a href="https://github.com/docker/docker/blob/670c8696a29825b23208496bd4d8e88b5faa7773/builder/dispatchers.go#L77">directement à partir du code source</a></p>

162voto

Victor Laskin Points 74

Il y a certains documentation officielle sur ce point: les Meilleures Pratiques pour la Rédaction des Dockerfiles

Et quand c'est possible, au lieu de les EXÉCUTER et de les COPIER (parce que la taille de l'image de questions, à l'aide d'AJOUT pour aller chercher les paquets à partir d'une Url distante est fortement déconseillée), faire quelque chose comme:

RUN mkdir -p /usr/src/things \
&& curl -SL http://example.com/big.tar.gz \
| tar -xJC /usr/src/things \
&& make -C /usr/src/things all

Pour les autres éléments (fichiers, répertoires) qui ne nécessitent pas d'AJOUTER du goudron auto-extraction capacité, vous devriez toujours utiliser la COPIE.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X