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