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
文件中删除 \
转义解决了所有问题。
我有一个 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
文件中删除 \
转义解决了所有问题。