作者: | 来源:互联网 | 2023-09-07 03:06
我有一个问题。我们正在Docker容器中的构建代理上运行构建。 Maven插件发布:准备克隆仓库。当这样做时,它将失败。因此,我已将名为环境变量“ TFS_accESSTOKEN”(添加了附加参数-e TFS_accESSTOKEN =“ $(SYSTEM.accESSTOKEN)”)的容器$(SYSTEM.accESSTOKEN)传递给容器并运行了此
git config --global http.extraheader "AUTHORIZATION: bearer ${TFS_accESSTOKEN}"
当插件运行克隆时,它仍然要求提供用户名,但失败。
我将管道更改为将访问令牌输出为base64并将睡眠设置为1h。
解码的令牌,然后转到另一台机器,并手动重复执行这些步骤,所有工作即可。步骤:
git config --global http.extraheader "AUTHORIZATION: bearer "
git clone https://tfs-server/repo-path
我想知道为什么令牌可以在2台不同的机器上工作而不能在容器中工作。
我注意到机器具有相同的/ etc / machine-id。我已将体积添加到Docker容器中,但仍无法正常工作。
您需要将 TFS_ACCESSTOKEN 包装在$()
中以引用它,而不是${}
。
尝试在您的git命令下方更改
git config --global http.extraheader "AUTHORIZATION: bearer ${TFS_ACCESSTOKEN}"
收件人
git config --global http.extraheader "AUTHORIZATION: bearer $(TFS_ACCESSTOKEN)"
,
问题仅仅是因为Docker容器具有非常老的git版本(1.8.3),而http.extraheader
是在2.1。*中引入的(如果我没记错的话)。