Dockerfile中ADD與COPY
注意點
-
COPY復制的是指定目錄下的文件,不會復制該目錄
up@up123:~/a$ ls a.txt b.txt c.txtCOPY a /root/ # 鏡像root目錄下,沒有目錄a # a.txt b.txt c.txt
問題
在Dockerfile中使用 ADD將文件復制到鏡像的指定目錄下
ADD nmap-7.60.tar.bz2 /root/
RUN bzip2 -cd nmap-7.60.tar.bz2 | tar xvf -

原因
ADD除了普通的復制文件,對於壓縮文件,會先解壓再將解壓后的文件夾復制到鏡像中
COPY僅僅是對文件進行復制,不會對復制的文件進行任何操作
解決方案
-
使用
COPY和bzip2ADD nmap-7.60.tar.bz2 /root/ RUN bzip2 -cd nmap-7.60.tar.bz2 | tar xvf - && \ cd nmap-7.60 -
只使用
ADD,不再次解壓ADD nmap-7.60.tar.bz2 /root/ RUN cd nmap-7.60
