如何在 WORKDIR 节中使用环境变量?
How to use env var in WORKDIR stanza?
到目前为止,我有一个非常精简的 Dockerfile:
FROM ubuntu:trusty
ENV MYPACKAGE_VERSION 0.1.2
ADD mypackage-${MYPACKAGE_VERSION}.tar.gz /root/
WORKDIR /root/mypackage-${MYPACKAGE_VERSION}/
.tar.gz 被正确地添加到 docker 文件中(它是自动提取的,这令人沮丧,因为这可能并不总是合乎需要的)。所以在图像上路径 /root/mypackage-0.1.2/
存在并包含我想要使用的内容,但是 WORKDIR
节 cd 进入文字路径 /root/mypackage-${MYPACKAGE_VERSION}
,转义为 /root/fifechan-$\{FIFECHAN_VERSION\}/
.
我发现不一致的变量处理非常令人沮丧;这个目录要怎么指定才能使用?
请在此处查看 Github 问题:https://github.com/docker/docker/issues/2637。该问题表明此问题现已得到解决。您使用的是最新版本吗?
您也可以在调用时覆盖 Dockerfile 中的 WORKDIR docker run
:
docker run -w=/root/mypackage-0.13
到目前为止,我有一个非常精简的 Dockerfile:
FROM ubuntu:trusty
ENV MYPACKAGE_VERSION 0.1.2
ADD mypackage-${MYPACKAGE_VERSION}.tar.gz /root/
WORKDIR /root/mypackage-${MYPACKAGE_VERSION}/
.tar.gz 被正确地添加到 docker 文件中(它是自动提取的,这令人沮丧,因为这可能并不总是合乎需要的)。所以在图像上路径 /root/mypackage-0.1.2/
存在并包含我想要使用的内容,但是 WORKDIR
节 cd 进入文字路径 /root/mypackage-${MYPACKAGE_VERSION}
,转义为 /root/fifechan-$\{FIFECHAN_VERSION\}/
.
我发现不一致的变量处理非常令人沮丧;这个目录要怎么指定才能使用?
请在此处查看 Github 问题:https://github.com/docker/docker/issues/2637。该问题表明此问题现已得到解决。您使用的是最新版本吗?
您也可以在调用时覆盖 Dockerfile 中的 WORKDIR docker run
:
docker run -w=/root/mypackage-0.13