> For the complete documentation index, see [llms.txt](https://camelgemonion.gitbook.io/docker/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://camelgemonion.gitbook.io/docker/dockerfile-zhi-ling/workdir.md).

# WORKDIR

```
WORKDIR /path/to/workdir
```

**WORKDIR指令**为**Dockerfile**中在该指令之后的**RUN，CMD、ENTRYPOINT、COPY** 和**ADD指令**设置工作目录。如果**WORKDIR**不存在，那么即使它没有被用于任何后续的**Dockerfile指令**，它也会被创建 。

**WORKDIR指令**可以在**Dockerfile**中多次使用。如果提供了相对路径，则该路径将相对于之前的**WORKDIR**指令的路径。例如：

```
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd
```

上面**Dockerfile**中**pwd**命令输出的结果&#x662F;**/a/b/c**。

**WORKDIR指令**可以解析先前在**Dockerfile**中通过**ENV**设置的环境变量。我们只能使用**Dockerfile**中明确设置的环境变量。例如：

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

最终**pwd**命令输出的结果&#x662F;**/path/$DIRNAME**。
