[英]running package.json in docker with reference to a private repository vsts git repository fails due to authentication failure
我的主項目有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 ERR! 主機密鑰驗證失敗。 npm ERR! 致命:無法從遠程存儲庫讀取。
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之前將ssh密鑰復制到docker文件中嗎?
要對問題進行故障排除,請檢查以下方面:
確保Docker映像中還提供了SSH密鑰。
您可以將SSH密鑰提交到文件中的git repo中,然后將文件(SSH密鑰)復制到docker映像中。 您可以在docker build中參考私有倉庫中gist npm install的詳細步驟。
沒有方法只能通過讀取權限來限制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 " },
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.