Linux 在Dockerfile中多次使用同一变量

Linux 在Dockerfile中多次使用同一变量,linux,docker,variables,dockerfile,Linux,Docker,Variables,Dockerfile,我试图在下面的Dockerfile中多次使用相同的变量($MINERV) FROM debian:stable ARG MINERV=5.5c RUN export DEBIAN_FRONTEND=noninteractive RUN apt-get update RUN apt-get upgrade -y RUN apt-get install -y curl RUN mkdir /home/docker RUN curl "https://github.com/Phoenix

我试图在下面的Dockerfile中多次使用相同的变量(
$MINERV

FROM debian:stable

ARG MINERV=5.5c

RUN export DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y curl
RUN mkdir /home/docker
RUN curl "https://github.com/PhoenixMinerDevTeam/PhoenixMiner/releases/download/$MINERV/PhoenixMiner_$MINERV_Linux.tar.gz" -L -o "/home/docker/PhoenixMiner_$MINERV_Linux.tar.gz"

WORKDIR /home/docker

CMD ["ls"]
docker build的输出-t测试和docker运行测试
PhoenixMiner\uu5.5c\ulinux.tar.gz
当我期待
PhoenixMiner\u5.5c\ulinux.tar.gz

我可以确认
curl
正在尝试抓取
https://github.com/PhoenixMinerDevTeam/PhoenixMiner/releases/download/5.5c/PhoenixMiner_$MINERV_Linux.tar.gz
。我还用
ENV
而不是
ARG
进行了尝试,得到了相同的结果

如何在Dockerfile中多次使用同一变量


谢谢

我认为您必须像这样放置$MINERV->${MINERV}在您使用它的地方

与您的问题无关,但请注意,Dockerfile的结构将导致图像中大量的空间浪费。将所有
apt
命令分组到一个
RUN
语句中,并在最后清理缓存。问题是
\uu
是变量名中的有效字符,因此在编写
$MINERV\u Linux.tar.gz
时,Docker正在查找名为
MINERV\u Linux
的变量@enriqueponce有解决方案。facepalm是的!谢谢你们两位!我知道这会是显而易见的。