背景
- 当需要git clone拉取私有库时,传统的做法为将本机的ssh配置到gitlab中。但在docker中执行程序时需要拉取私有库,此时无法为每个docker容器配置ssh。网上的一种方案为,将配置好的ssh同步到docker容器中,覆盖其中的ssh秘钥等,但在尝试过程中,发现了问题,ssh秘钥需要验证是否被盗用(可能有解决办法),因此我尝试换种方案。
解决办法
git clone https://$accessUserName:$accessToken@gitlab.com/.../xxx.git
- accessToken拉取仓库时通常使用的是https协议,但我们的脚本程序中有较多的拉取使用的git协议,为了统一处理,使用
git config --global --add url."".insteadOf“”
方式处理,如下所示:
export accessUserName="......."
export accessToken="........"
git config --global --add url."https://$accessUserName:$accessToken@gitlab.com/".insteadOf "git@gitlab.com/"
git config --global --add url."https://$accessUserName:$accessToken@gitlab.com/".insteadOf "git@gitlab.com:"
git config --global --add url."https://$accessUserName:$accessToken@gitlab.com/".insteadOf "https://gitlab.com/"
git config --global --add url."https://$accessUserName:$accessToken@gitlab.com/".insteadOf "https://gitlab.com:"
上述脚本执行完成之后,可在~/.gitconfig
文件中看到git的替换规则
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)