,... " 赞 踩 ADD 指令从指定 中复制新文件,目录或远程文件,并将它们添加到指定 路径上镜像的文件系统中; 可以指定多个资源,但如果它们是文件或目录,则它们必须相对于正在构建的源目录(构建上下文); 每个 都可能包含通配符,匹配将使用 Go 的 filepath.Match 规则完成; 是一个绝对路径或一个相对于 WORKDIR 的路径: 添加包含特殊字符(例如:[ and ])的文件或目录时,需要按照Golang规则转义这些路径,以防止它们被视为某种模式。例如,要添加名为 arr[0].txt 的文件,请使用以下命令: 当 是远程 URL 文件的情况下,目标将具有 600 权限。如果正在检索的远程文件具有 HTTP Last-Modified 标头,则来自该标头的时间戳将用于设置 mtime 目标文件。但是,与在处理期间处理的任何其他文件一样 ADD,mtime 将不包含在确定文件是否已更改且应更新回到缓存中。 如果通过传递 Dockerfile STDIN(docker build - < somefile)进行构建,则没有构建上下文,因此Dockerfile只能包含基于 URL 的 ADD 指令。你还可以通过 STDIN:(docker build - < (archive.tar.gz)传递压缩文档 Dockerfile,该存档诶与存档的根目录,其余存档将用作构建的上下文。 如果你的网址文件都使用认证保护,你讲需要使用 RUN get,RUN curl 或使用其它工具,容器内的 ADD 指令不支持验证。 ADD 如果内容已更改,则第一个遇到的指令将使来自Dockerfile的所有后续指令的告诉缓存无效。这包括使缓存无效以获取 RUN 指令。有关详细信息,请参阅 ”Dockerfile 最佳实践指南“ 不复制目录本身,值复制其内容; 如果是以可识别的压缩格式(identity, gzip, bzip2 或 xz)的本地tar存档,则将其解压缩为目录。远程 URL 中的资源不会被解压缩。复制或解压缩目录时,它具有相同的行为 tar -x ,结果是: Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。
004-Dockerfile-ADD_dockerfile add []
语法
语法 1
ADD <src>... <dest>
语法 2
ADD ["<src>,... "<dest>"] (包含空格的路径需要此格式)
作用 & 描述
ADD hom* /mydir/ # * 号匹配所有字符,添加所有以 hom 开头的文件到 /mydir/目录中
ADD hom?.txt /mydir/ # ? 问号匹配单个字符
ADD test relativeDir # 将 “test” 添加到 `WORKDIR`/relativeDir/ 目录中
ADD test /absoluteDir/ # 将 “test” 添加到 /absoluteDir/ 目录中
ADD arr[[]0].txt /mydir/ # 将文件名为 "arr[0].txt" 拷贝到 /mydir/ 目录中
注意
注意 1
注意 2
注意 3
注意 4
注意 5
注意 6
注意:
文件是否被表示为可识别的压缩格式仅基于文件的内容而不是文件的名称来完成。例如,如果一个空文件碰巧以此结束,.tar.gz 则不会将其识别为压缩文件,也不会生成任何类型的解压缩错误消息,而是将文件简单地复制到目标。