dockerfile指令workdir指定目录不存在,构建过程自动创建

WORKDIR

WORKDIR 指定的目录如果不存在,Docker 在构建镜像时会自动创建

具体来说:

  • Dockerfile 里写 WORKDIR /app

    • 如果 /app 不存在,构建时会自动 mkdir -p /app
    • 如果目录已存在,就直接切换过去。
  • 如果你连续多次使用 WORKDIR,路径是相对叠加的:

1
2
3
WORKDIR /app
WORKDIR src
# 结果目录是 /app/src
  • 自动创建的目录权限取决于当前镜像构建时的 **USER**:

    • 默认是 root,那目录就是 root:root
    • 如果之前切换过 USER,就按那个用户的权限创建。

💡 小提醒:WORKDIR 的自动创建只发生在 镜像构建阶段,如果是在容器运行时去 cd 一个不存在的目录,那就要自己提前建好。