坑(六)—— dockerfile中COPY與ADD


Dockerfile中ADD與COPY

注意點

  • COPY復制的是指定目錄下的文件,不會復制該目錄

    up@up123:~/a$ ls
    a.txt b.txt c.txt
    
    COPY 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僅僅是對文件進行復制,不會對復制的文件進行任何操作

解決方案

  1. 使用COPYbzip2

    ADD nmap-7.60.tar.bz2 /root/
    
    RUN bzip2 -cd nmap-7.60.tar.bz2 | tar xvf - && \
    		   cd nmap-7.60
    
  2. 只使用ADD,不再次解壓

    ADD nmap-7.60.tar.bz2 /root/
    
    RUN cd nmap-7.60
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM