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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章