dockerfile深入学习之COPY
COPY指令:将src下的文件或目录拷贝到dest下
语法形式:
- COPY <src> .. <dest>
- COPY ["<src>",... "<dest>"] 此法在路径包含空格的情况下使用
src:
- COPY可以指定多个src、但每个src必须与正在构建的路径相关
- 每个src都可以包含通配符,使用go的正则匹配规则进行解析
- 实例:
- COPY hom* /mydir/ # adds all files starting with "hom"
- COPY hom?.txt /mydir/ # ? is replaced with any single
dest:
- dest可以是绝对路径、也可以是WORKDIR下的相对路径
- COPY test relativeDir/ # adds "test" to `WORKDIR`/relativeDir/
- COPY test /absoluteDir/ # adds "test" to /absoluteDir/
- 如果src中包含特殊字符如"["等,需要对路径进行转义
- COPY arr[[]0].txt /mydir/ # copy a file named "arr[0].txt" to /mydir/
- 所有新的文件和目录都通过UID和GID规则命名
NOTE:
- COPY不支持使用STDIN(docker build - < somefile)
- COPY指令接受—from=<name | index>、该方式指定source的位置为前一个构建阶段中 FROM .. AS<name>所创建,如此不再需要用户指定、该标志还接受从FROM指令开始的所有以前的构建阶段分配的数字索引、如果无法找到具有指定名称的构建阶段,则尝试使用具有相同名称的镜像
- COPY遵循规则同ADD
- 如果src是一个目录、则目录本身不被复制、只会复制里面的内容
- 如果src是一个文件、并dest以"/"结尾、则会将文件复制到dest目录下
- 如果指定了多个src、则dest必须是一个以”/”结尾的目录
- 如果dest没有以”/”结尾,则其会被当成一个文件、src中的内容会被复制到dest文件中
- 如果dest不存在、则它会与其路径中所有缺少的目录一起创建
浙公网安备 33010602011771号