Dockerfile中的WORKDIR $ HOME似乎不起作用

我有一个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 (即/root $HOME ),但是它仍然是/tmp 。 我在这里犯了一个明显的错误吗? 有没有更好的方法来恢复pwd的“原始”价值。

似乎最好的方法是明确设置您自己的默认值,以确保它是一致的,如:

 ENV HOME /root WORKDIR $HOME .. do something in /root .. WORKDIR /tmp .. do something else in /tmp .. WORKDIR $HOME .. continue back in /root .. 

注意:

WORKDIR指令可以parsing先前使用ENV设置的环境variables。 您只能使用在Dockerfile中显式设置的环境variables。

https://docs.docker.com/engine/reference/builder/#/workdir