我有一个 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
for root
),但它保留在 /tmp
。我在这里犯了一个明显的错误吗?有没有更好的方法将 pwd
恢复到“原始”值。
最佳答案
似乎最好的方法是明确设置您自己的默认值,这样您就可以确保它是一致的,例如:
ENV HOME /root
WORKDIR $HOME
.. do something in /root ..
WORKDIR /tmp
.. do something else in /tmp ..
WORKDIR $HOME
.. continue back in /root ..
注意:
The WORKDIR instruction can resolve environment variables previously set using ENV. You can only use environment variables explicitly set in the Dockerfile.
关于docker - Dockerfile 中的 WORKDIR $HOME 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423202/