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

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

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

相关推荐
Felven4 小时前
中科驭数100G网卡RDMA性能测试
linux·rdma·中科驭数·100g网卡
Agent世界4 小时前
用 CDP 做发布自动化:四道机器闸门与产物验收
前端·javascript
FungLeo4 小时前
成为全栈·Vue 管理后台篇·编辑器图片上传:从文件选择到文章附件关联
前端·vue.js·编辑器·markdown·文件上传·formdata·附件管理
总要学点什么4 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
某哈压力大4 小时前
SSH 突然 Connection reset?不是密钥坏了,是 OpenSSL 把 sshd 干趴了
前端·node.js·命令行
程序员大阳4 小时前
副队长ES6+教程(3)--解构赋值
前端·javascript·es6·赋值·解构
神膘护体小月半5 小时前
css - 元素背景图由 hover 触发,初次加载时闪动的解决办法
前端·javascript·css
程序员大阳5 小时前
副队长ES6+教程(2)--let 与 const
前端·javascript·es6·const·let·var
deli0075 小时前
写满 200GB 后 SSD 为什么掉到 95MB/s?SLC 缓存模型实测
前端
雪落漂泊6 小时前
Liunux进程(七):程序控制篇(中)
linux·运维·windows