Dockerfile:如何使用 wget 和变量中的 url 下载文件

问题描述 投票:0回答:1

我有一个包含类似内容的 Dockerfile

RUN url=$(curl -sL https://... | jq) #simply put url=https://example.com/tar.tgz
RUN wget $url #will fail here

IMO 的问题是

RUN
意味着
/bin/sh -c wget $URL
并且 wget 会抱怨缺少 URL 我试图从终端
/bin/sh -c "wget -v $url"
本地测试,并且它可以工作,但是当放入 Docker 文件中时

RUN "wget -v $url"
那么错误是
ERROR: failed to solve: process "/bin/sh -c \"wget $url\"" did not complete successfully: exit code: 127
因为RUN会为你逃脱
"

是否可以使用变量或 ARG 中的 url 在 Dockerfile 中下载某些内容?

variables url download dockerfile wget
1个回答
0
投票

我发布后的那一刻我就找到了答案。

似乎每个

RUN
都是单独的上下文,因此只需将命令组合成单个
RUN
就像

RUN url=$(curl -sL https://... | jq) && wget $url

© www.soinside.com 2019 - 2024. All rights reserved.