如何解决Docker:COPY是否支持可变目的地?
是否可以在Dockerfile的COPY
中指定变量dest-dir?
例如给定这个Dockerfile:
ARG dest_dir=/foo/bar/
FROM alpine:3.7 as base
COPY ./ ${dest_dir}
... docker build
似乎无法识别变量目的地:
$ docker build .
[+] Building 0.3s (7/7) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 118B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/alpine:3.7 0.0s
=> CACHED [1/2] FROM docker.io/library/alpine:3.7 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 106B 0.0s
=> [2/2] COPY ./ 0.1s
=> exporting to image 0.1s
=> => exporting layers 0.1s
=> => writing image sha256:e761939bd6a8092e51e37b08d3b4ca196d310d5e36d232252313cdddd68adace 0.0s
上面要注意的是,在步骤2/2中,COPY
没有第二个参数。
我尝试用双引号将ARG
值,在COPY
语句中使用它,以及两者都无效。
解决方法
当ARG
语句之前出现FROM
时,它仅适用于其后的FROM语句。如果您要在文件的其余部分中应用ARG
语句,请it must appear after the FROM statement。
赞:
FROM alpine:3.7 as base
ARG dest_dir=/foo/bar/
COPY ./ ${dest_dir}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。