7.10 WORKDIR 指定工作目录
7.10.1 基本语法
WORKDIR <工作目录路径>WORKDIR 指定后续指令的工作目录。如果目录不存在,Docker 会自动创建。
7.10.2 基本用法
WORKDIR /app
RUN pwd # 输出 /app
RUN echo "hello" > world.txt # 创建 /app/world.txt
COPY . . # 复制到 /app/7.10.3 为什么需要 WORKDIR
常见错误
## ❌ 错误:cd 在下一个 RUN 中无效
RUN cd /app
RUN echo "hello" > world.txt # 文件在根目录!原因分析
每个 RUN 都在新容器中执行,前一个 RUN 的内存状态(包括工作目录)不会保留。
正确做法
7.10.4 相对路径
WORKDIR 支持相对路径,基于上一个 WORKDIR:
7.10.5 使用环境变量
7.10.6 多阶段构建中的 WORKDIR
7.10.7 最佳实践
1. 尽早设置 WORKDIR
2. 使用绝对路径
3. 不要用 RUN cd
4. 适时重置 WORKDIR
7.10.8 与其他指令的关系
指令
WORKDIR 的影响
RUN
在 WORKDIR 中执行命令
CMD
在 WORKDIR 中启动
ENTRYPOINT
在 WORKDIR 中启动
COPY
相对目标路径基于 WORKDIR
ADD
相对目标路径基于 WORKDIR
7.10.9 运行时覆盖
使用 -w 参数覆盖工作目录:
最后更新于