запуск package.json в докере со ссылкой на частный репозиторий vsts git репозиторий завершается неудачно из-за ошибки аутентификации - PullRequest
0 голосов
/ 13 июня 2018

У моего основного проекта есть package.json, который имеет зависимости с другим частным GST-репозиторием VSTS

"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 build через мой файл Docker, он не работает из-за аутентификации

npm ERR!Ошибка проверки ключа хоста.нпм 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

Как лучше всего это сделать.Также следует скопировать ключ ssh в файл docker перед запуском npm install?

1 Ответ

0 голосов
/ 15 июня 2018

Для устранения проблемы, пожалуйста, проверьте следующие аспекты:

  1. Убедитесь, что ключ SSH был добавлен к учетной записи VSTS
  2. Убедитесь, что ключ SSH такжепредоставлено в образе докера.

    Вы можете зафиксировать ключ SSH в вашем git-репо в файле, а затем скопировать файл (ключ SSH) в свой образ докера.Вы можете сослаться на gist npm install из частного репозитория, в сборке Docker для подробных шагов.


Невозможно ограничить ключ SSH только чтениемразрешение.Но вы можете использовать персональный токен доступа (PAT) для достижения (используйте протокол HTTP вместо протокола SSH).Подробности, как показано ниже:

  1. Создать PAT только с выбранной областью кода (чтение)

    enter image description here

  2. Использовать PAT в URL git-репо

    Использовать формат URL:

    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 "
      },
    
...