Dockerfile中的COPY和ADD命令之间有什么区别,何时可以在另一个之上使用?
COPY
ADD
COPY <src> <dest>
COPY指令将从以下位置复制新文件<src>并将其添加到容器的文件系统中:<dest>
<src>
<dest>
ADD <src> <dest>
ADD指令将从中复制新文件<src>并将其添加到位于path的容器的文件系统中<dest>。
您应该查看ADD和COPY文档以获取有关其行为的更详细描述,但简而言之,主要区别在于ADD可以做的还不止COPY:
如果是以公认的压缩格式(身份,gzip,bzip2或xz)作为本地tar归档文件,则将其解压缩为目录。来自远程URL的资源不会被解压缩。
请注意,编写Dockerfile的最佳实践建议COPY在ADD不需要魔术的地方使用。否则,当您打算复制到容器中时,您( 由于必须查找此答案 )可能有一天会感到惊讶keep_this_archive_intact.tar.gz,而是将内容喷洒到文件系统上。
keep_this_archive_intact.tar.gz