Dockerfile(3) - WORKDIR 指令详解

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 指令的路径

python 复制代码
WORKDIR /a
WORKDIR b
WORKDIR c
RUN pwd

pwd 的输出将会是 /a/b/c

推荐

为了避免出错,推荐WORKDIR指令中只使用绝对路径

使用环境变量

WORKDIR 指令可以使用前面 ENV 设置的环境变量

python 复制代码
ENV DIRPATH=/path
WORKDIR $DIRPATH/$DIRNAME
RUN pwd    # /path/$DIRNAME

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
xin_nai2 分钟前
LeetCode热题100(Java)(5)普通数组
算法·leetcode·职场和发展
Joseph Cooper3 分钟前
Linux Power Management 子系统:从 suspend/resume 到 Runtime PM、PM QoS
linux·驱动开发·linux kernel·嵌入式linux·电源管理
wj30558537821 分钟前
CC-Switch 在 WSL Ubuntu 中安装记录
linux·运维·ubuntu
fzil00128 分钟前
自动投递简历 + 面试进度跟踪
人工智能·面试·职场和发展
其实防守也摸鱼33 分钟前
面试常问问题总结--护网蓝队方向
网络·笔记·安全·面试·职场和发展·护网·初级蓝队
山楂树の36 分钟前
图像标注大坑:img图片 + Canvas 叠加标注,同步放大后标注位置偏移、对不齐?详解修复方案及亚像素处理原理
前端·css·学习·canva可画
本山德彪39 分钟前
我做了一个拼豆图纸生成器,把照片秒变图纸
前端
Joseph Cooper1 小时前
Linux HID 子系统实战:从虚拟键盘到 input 事件上报
linux·c语言·计算机外设
原来是猿1 小时前
【Socket编程预备知识】
linux·运维·服务器·网络
DTrader1 小时前
用TS无法实盘量化? - 实盘均线策略
前端·api