除了平时能看到的一个区别,今天发现 docker 中的 ADD 和 COPY 还有一个区别,COPY 可以 “FROM” 另外一层镜像,但是 ADD 不行。
我现在有个需求从一个镜像中打包出的产物中,复制一个压缩包到另外一层镜像中,希望可以通过 ADD 直接解压压缩包。
ADD --from=builder /vol/development/gateway/target/admin-0.0.1-SNAPSHOT.tar.gz ./
以上的写法错误,ADD 不可以 from。
正确
COPY --from=builder /vol/development/gateway/target/admin-0.0.1-SNAPSHOT.tar.gz ./
RUN tar -zxf admin-0.0.1-SNAPSHOT.tar.gz && rm -rf admin-0.0.1-SNAPSHOT.tar.gz
只能写 copy 过来然后再解压,或者在上一层镜像中解压了,再复制过来。
参考文档
网友评论