就Docker的工作方式而言,Dockerfile中的RUN cd /和WORKDIR /有什么不同吗?
发布于 2019-11-14 10:53:01
RUN cd /什么也不做。WORKDIR /会为将来的命令更改工作目录。
每个RUN命令都在一个新的外壳和新的环境中运行(从技术上讲,还有一个新的容器,尽管您通常不会注意到这一点)。它之前的ENV和WORKDIR指令会影响它的启动方式。如果您有一个只更改目录的RUN步骤,那么当WORKDIR退出时,这个步骤就会丢失,下一步将从镜像的最新shell开始。
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也不会导致设置环境变量。)
https://stackoverflow.com/questions/58847410
复制相似问题