Dockerfile WORKDIR 指定工作目录

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/

截止目前, 星球 内专栏累计输出 72w+ 字,讲解图 3103+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2400+ 小伙伴加入学习 ,欢迎点击围观

Dockerfile 常用指令汇总 Dockerfile 常用指令汇总

WORKDIR 指令用于指定工作目录,后面各层的当前目录即为 WORKDIR 指定的目录,如果该目录不存在,WORKDIR 会自动建立目录。

使用格式如下:

WORKDIR <工作目录路径>

为什么需要 WORKDIR ?

初学者在学习 Dockerfile 时,会将其当作 Shell 脚本来写,比如:

RUN cd /app
RUN echo "hello" > world.txt

通过这个 Dockerfile 构建镜像运行后,会发现找不到 /app/world.txt 文件,或者内容不是 hello 。为什么会发生这种情况呢?因为在 Shell 中,连续两行命令执行是在同一个进程中;而在 docker build 构建镜像过程中,每一个 RUN 命令都会新建一层,执行环境是完全不同的。

WORKDIR /app

定义了 WORKDIR /app 后,就可以指定后面每层的工作目录了。

Dockerfile 常用指令汇总 Dockerfile 常用指令汇总