背景
- 当需要git clone拉取私有库时,传统的做法为将本机的ssh配置到gitlab中。但在docker中执行程序时需要拉取私有库,此时无法为每个docker容器配置ssh。网上的一种方案为,将配置好的ssh同步到docker容器中,覆盖其中的ssh秘钥等,但在尝试过程中,发现了问题,ssh秘钥需要验证是否被盗用(可能有解决办法),因此我尝试换种方案。
解决办法
-
使用gitlab中的accessTokens。
1、登录到GitLab.
2、点击右上角的头像,然后选择设置 .
3、在" 用户设置"菜单上,选择" 访问令牌" .
4、选择令牌的名称和可选的到期日期.
5、选择所需的范围 .
6、单击创建个人访问令牌按钮.
7、将个人访问令牌保存在安全的地方. 离开或刷新页面后,将无法再次访问它. -
从而在docker容器中可以通过如下方式使用:
git clone https://$accessUserName:$accessToken@gitlab.com/.../xxx.git
- accessToken拉取仓库时通常使用的是https协议,但我们的脚本程序中有较多的拉取使用的git协议,为了统一处理,使用
git config --global --add url."".insteadOf“”
方式处理,如下所示:
export accessUserName="......."
expor