Linux 在Dockerfile中多次使用同一变量
我试图在下面的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
$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是的!谢谢你们两位!我知道这会是显而易见的。