1. ホーム
  2. docker

[解決済み] Dockerfileの'COPY'と'ADD'コマンドの違いは何ですか?

2022-03-04 14:34:21

質問

の違いは何ですか? COPYADD というコマンドがありますが、どのような場合にどちらを使うのでしょうか?

COPY <src> <dest>

COPY 命令は、新しいファイルを <src> にあるコンテナのファイルシステムに追加し、パス <dest>

ADD <src> <dest>

ADD 命令は、新しいファイルを <src> に追加し、コンテナのファイルシステムのパス <dest> .

解決方法は?

を確認する必要があります。 ADD COPY のドキュメントに詳しい説明がありますが、一言で言うと、大きな違いは ADD よりも多くのことができます。 COPY :

  • ADD<src> をURLとする
  • 以下のコメントを参照すると ADD ドキュメント と記載されています。

認識されている圧縮形式 (identity, gzip, bzip2 or xz) のローカル tar アーカイブの場合、ディレクトリとして解凍されます。リモート URL からのリソースは解凍されません。

なお Dockerfilesの書き方のベストプラクティス を使用することを提案しています。 COPY のマジックは ADD は必要ありません。そうでない場合は、( この答えは、あなたが調べなければならなかったので をコピーするつもりでいると、いつかびっくりすることになる可能性が高いです。 keep_this_archive_intact.tar.gz をコンテナに入れる代わりに、その内容をファイルシステムに吹き付けてしまうのです。