首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dockerfile中RUN cd与WORKDIR的区别

Dockerfile中RUN cd与WORKDIR的区别
EN

Stack Overflow用户
提问于 2019-11-14 07:58:17
回答 1查看 7.4K关注 0票数 21

就Docker的工作方式而言,Dockerfile中的RUN cd /WORKDIR /有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-14 10:53:01

RUN cd /什么也不做。WORKDIR /会为将来的命令更改工作目录。

每个RUN命令都在一个新的外壳和新的环境中运行(从技术上讲,还有一个新的容器,尽管您通常不会注意到这一点)。它之前的ENVWORKDIR指令会影响它的启动方式。如果您有一个只更改目录的RUN步骤,那么当WORKDIR退出时,这个步骤就会丢失,下一步将从镜像的最新shell开始。

代码语言:javascript
复制
FROM busybox
WORKDIR /tmp
RUN pwd       # /tmp

RUN cd /      # no effect, resets after end of RUN line
RUN pwd       # still /tmp

WORKDIR /
RUN pwd       # /

RUN cd /tmp && pwd  # /tmp
RUN pwd       # /

(出于同样的原因,RUN export不会执行任何超过当前Dockerfile指令的操作,并且RUN .或非标准RUN source也不会导致设置环境变量。)

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58847410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档