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

时间:2016-07-17 16:03:02

标签: docker dockerfile

我有一个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恢复为“原始”值。

1 个答案:

答案 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中。

     
    

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