1. COPY

1.1. 指令

COPY [--chown=<user>:<group>] <源路径>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]

1.2. 描述

COPY 复制文件到容器。

COPY 指令将从构建上下文目录中 <源路径> 的文件或目录复制到新的一层的镜像内的 <目标路径> 位置。比如:

COPY package.json /usr/src/app/

<源路径> 可以是多个,甚至可以是通配符,其通配符规则要满足 Go 的 filepath.Match 规则,如:

COPY hom* /mydir/
COPY hom?.txt /mydir/

<目标路径> 可以是容器内的绝对路径,也可以是相对于工作目录的相对路径(工作目录可以用 WORKDIR 指令来指定)。

此外,还需要注意一点,使用 COPY 指令,源文件的各种元数据都会保留。比如读、写、执行权限、文件变更时间等。这个特性对于镜像定制很有用。特别是构建相关文件都在使用 Git 进行管理的时候。

在使用该指令的时候还可以加上 --chown=<user>:<group> 选项来改变文件的所属用户及所属组。

COPY --chown=55:mygroup files* /mydir/
COPY --chown=bin files* /mydir/
COPY --chown=1 files* /mydir/
COPY --chown=10:11 files* /mydir/

copy复制目录时,默认只是复制目录中的内容,而不会复制当前的目录。目录路径中目录不存在时会自动创建,但在填写时需要明确指定。例如

COPY tomcat /usr/local/tomcat/

这里会把 tomcat目录中的内容复制到 /usr/local/tomcat 中。如果目标目录写成 /usr/local/ ,则会缺少tomcat这一层目录。

COPY指令还支持通过网络复制文件

COPY --from=hub.c.163.com/qingzhou/etcd:v3.3.13 /usr/local/bin/etcdctl /usr/local/bin/
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-03-13 11:28:02

results matching ""

    No results matching ""