Dockerfile(3) - WORKDIR 指令詳解


WORKDIR

  • 切換到鏡像中的指定路徑,設置工作目錄
  • 在 WORKDIR 中需要使用絕對路徑,如果鏡像中對應的路徑不存在,會自動創建此目錄
  • 一般用 WORKDIR 來替代 RUN cd <path> && <do something> 切換目錄進行操作的指令
  • WORKDIR 指令為 Dockerfile 中跟隨它的任何 RUN、CMD、ENTRYPOINT、COPY、ADD 指令設置工作目錄
  • 如果 WORKDIR 不存在,即使它沒有在任何后續 Dockerfile 指令中使用,它也會被創建

 

小栗子

會將宿主機的 test.txt 文件復制到 鏡像的 /tmp/test.txt

WORKDIR /tmp
COPY test.txt .

 

使用相對路徑的場景

WORKDIR 指令可以在 Dockerfile 中多次使用

如果提供了相對路徑,它將相對於一個 WORKDIR 指令的路徑

WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd

pwd 的輸出將會是 /a/b/c

 

推薦

為了避免出錯,推薦WORKDIR指令中只使用絕對路徑

 

使用環境變量

WORKDIR 指令可以使用前面 ENV 設置的環境變量

ENV DIRPATH=/path
WORKDIR $DIRPATH/$DIRNAME
RUN pwd    # /path/$DIRNAME

 


免責聲明!

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



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