【发布时间】:2018-06-13 06:42:06
【问题描述】:
我的主项目有 package.json,它与另一个私有 VSTS Git 存储库有依赖关系
"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"
},
在我的桌面上我已经安装了 SSH 密钥,所以当我运行 npm install 时它可以工作。但是当我通过我的 docker 文件运行docker build 时,由于身份验证而失败。
npm 错误!主机密钥验证失败。 npm 错误!致命:无法读取 来自远程存储库。
FROM node:boron
# Create app directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Set env
ENV PORT 3000
# Install app dependencies
ADD package.json /tmp/package.json
RUN cd /tmp && npm install
# Bundle app source
ADD . /usr/src/app
# Open port to access server
EXPOSE $PORT
# Execute as bash script to pass along env variables
CMD npm start
解决此问题的最佳方法是什么。还应该在运行 npm install 之前复制 docker 文件中的 ssh 密钥吗?
【问题讨论】:
-
您是否已将 SSH 密钥添加到您的 VSTS 帐户?
-
是的,我已将 SSH 密钥添加到我的 VSTS 帐户,当我从我的计算机执行 npm install 时,它可以工作。当我执行“docker build”时,dockerfile 具有 npm install 命令,它尝试执行 package.json,而 package.json 又尝试调用其他存储库并失败。为了进行测试,我将我使用的 ssh 密钥放在了镜像构建中,然后它就可以工作了,但我觉得这不是一个好习惯。
-
需要在 dockerfile 中指定 SSH 密钥。否则会有认证问题。
标签: node.js git docker azure-devops