我有一个Dockerfile包含两个WORKDIR
语句(在其他语句中),如下所示:
RUN pwd # reports /root
WORKDIR /tmp
RUN wget ...
RUN tar zxvf ...
RUN cd ... && ; ./configure && make && make install
RUN sed ...
RUN sed ...
RUN rm ...
RUN rm -fr ...
WORKDIR $HOME
RUN pwd # reports /tmp (instead of /root)
之后,我希望pwd
为/root
($HOME
} root
,但它仍为/tmp
。我在这里犯了一个明显的错误吗?是否有更好的方法可以将pwd
恢复为“原始”值。
答案 0 :(得分:12)
似乎最好的方法是明确设置您自己的默认值,这样您就可以确定它是否一致,如:
ENV HOME /root
WORKDIR $HOME
.. do something in /root ..
WORKDIR /tmp
.. do something else in /tmp ..
WORKDIR $HOME
.. continue back in /root ..
注意:
WORKDIR指令可以先解析环境变量 使用ENV设置。您只能使用显式设置的环境变量 在Dockerfile中。