簡體   English   中英

由於身份驗證失敗,在docker上參考私有存儲庫vsts git存儲庫運行package.json失敗

[英]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文件中嗎?

要對問題進行故障排除,請檢查以下方面:

  1. 確保SSH密鑰已添加到VSTS帳戶
  2. 確保Docker映像中還提供了SSH密鑰。

    您可以將SSH密鑰提交到文件中的git repo中,然后將文件(SSH密鑰)復制到docker映像中。 您可以在docker build中參考私有倉庫中gist npm install的詳細步驟。


沒有方法只能通過讀取權限來限制SSH密鑰。 但是您可以使用個人訪問令牌 (PAT)來實現(使用HTTP協議而不是SSH協議)。 詳細信息如下:

  1. 僅在選擇“代碼(讀取)”范圍的情況下創建PAT

    在此處輸入圖片說明

  2. 在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM