我的主项目有package.json,它与另一个私有VSTS Git存储库
有依赖关系.scss
在我的桌面上,我安装了SSH密钥,因此当我运行"dependencies": {
"sk-api": "git+ssh://My-tfs@vs-ssh.visualstudio.com:22/tk-api/_ssh/tk-api#v1.1.7",
"sk-modes": "git+ssh://My-tfs@vs-ssh.visualstudio.com:22/tk-modes/_ssh/tk-modes#tk"
},
时,它可以运行。但是当我通过我的docker文件运行npm install
时,由于身份验证而失败。
npm ERR!主机密钥验证失败。错误的ERR!致命:无法阅读 来自远程存储库。
docker build
最好的方法是什么。还应该在运行npm install之前复制docker文件中的ssh密钥吗?
答案 0 :(得分:1)
要解决此问题,请查看以下方面:
确保还在docker镜像中提供了SSH密钥。
您可以将SSH密钥提交到文件中的git仓库,然后将文件(SSH密钥)复制到docker镜像。您可以参考要点npm install from private repo, in docker build了解详细步骤。
只有读取权限才能限制SSH密钥。但您可以使用个人访问令牌(PAT)来实现(使用HTTP协议而不是SSH协议)。详情如下:
仅在选择了代码(读取)范围的情况下创建PAT
在git repo URL中使用PAT
使用以下网址格式:
git+https://Personal%20Access%20Token:PAT@account.visualstudio.com/project/_git/repo
例如,您可以将package.json文件中的依赖项更改为:
"dependencies": {
"sk-api": "git+https://Personal%20Access%20Token:adsvso24n1nd6o7vydn3hsfvb5nicrqrbjm5umwrxnktglemajta@My-tfs.visualstudio.com/tk-api/_git/tk-api ",
"sk-modes": "git+https://Personal%20Access%20Token:adsvso24n1nd6o7vydn3hsfvb5nicrqrbjm5umwrxnktglemajta@My-tfs.visualstudio.com/tk-modes/_git/tk-modes "
},