我在package.json中有这两个deps:
"cdt-core": "git+https://gitscm.nabisco.com/scm/it-gats-cdtechnologyarchitecture-cdtsdaas/cdt-core.git",
"cdt-models": "git+https://gitscm.nabisco.com/scm/it-gats-cdtechnologyarchitecture-cdtsdaas/cdt-models.git"
我可以在我的本地机器上安装它们。 如果我尝试从我的机器上的Docker容器内安装它们,我会得到:
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t https://gitscm.cisco.com/scm/it-gats-cdtechnologyarchitecture-cdtsdaas/cdt-core.git
npm ERR!
npm ERR! fatal: Authentication failed for 'https://gitscm.cisco.com/scm/it-gats-cdtechnologyarchitecture-cdtsdaas/cdt-core.git/'
npm ERR!
npm ERR! exited with error code: 128
有谁知道罪魁祸首是什么?它是SSH密钥吗?将我的SSH密钥复制到容器可能会有效,但在某些情况下,我们必须在远程计算机上构建映像(在Jenkins上,或其他任何方式),因此我可能需要一个不仅在本地工作的解决方案。
如果我在容器中明确提供我的凭据,就可以:
"cdt-core": "git+https://USER:PASSWORD@gitscm.nabisco.com/scm/it-gats-cdtechnologyarchitecture-cdtsdaas/cdt-core.git"
但我不想在那里包含明文密码。那么如何在没有SSH密钥的情况下做到这一点呢?