wget 身份验证在 docker-compose 构建中失败但在 docker 构建 Dockerfile 中成功

wget authentication fails in docker-compose build but succeeds in docker build Dockerfile

我有一个 docker-compose.yml 文件,它构建了一些关于 Dockerfile 的节点。此 Dockerfile 有一个 wget 命令作为 RUN 需要验证。问题是身份验证步骤不成功。我尝试 echo 在执行前检查命令,它是正确的;它在 shell 中工作正常,但仍然得到 Username/Password Authentication Failed

这是命令:

wget --user $USER --password $PASS $URL

知道是什么产生了这个吗?

编辑 1:

我用docker build -t myimagename:myimagetag .

执行上面的命令没问题

我已经解决了。问题是在 $PASS 中使用了特殊字符。我不得不用 \ 转义这些字符,同时通过 shell 将它们传递给 docker build。我也在我的 .env 文件中设置了 $PASS 字符转义,但碰巧 .env 文件中包含的值被原始传递给 Dockerfile 中提到的 docker-compose.yml

.env 文件中删除 \ 转义解决了所有问题。