Как мы устанавливаем StrictHostKeyChecking=no для npm при запуске в контейнере docker с использованием конвейера jenkins?

#docker #jenkins #npm #ssh #npm-install

#докер #дженкинс #npm #ssh #npm-install

Вопрос:

Я пытаюсь установить npm модули из частного репозитория в контейнер docker из конвейера jenkins. Я следил за этим блогом: https://sanderknape.com/2019/06/installing-private-git-repositories-npm-install-docker / и использовал опцию docker buildkit. Моя проблема заключается в конфигурации ssh для StrictHostKeyChecking=no .

Когда я запускаю эту команду в docker, она проходит успешно, поскольку добавляет хост в known_hosts

 RUN --mount=type=ssh,id=github GIT_SSH_COMMAND="ssh -vvvT -o StrictHostKeyChecking=no" git clone git@github.****
  

Но при выполнении этой команды я получаю ошибку Host Verification failed Ошибка проверки хоста:

 RUN --mount=type=ssh,id=github GIT_SSH_COMMAND="ssh -vvvT -o StrictHostKeyChecking=no" npm install git ssh://git@github.****
  

Кроме того, как мы передаем ssh-agent, настроенный в конвейере jenkins, в контейнер docker?

Ответ №1:

Наконец-то это решено. Проблема заключалась в том, что git и npm использовали разные домашние каталоги для клонирования.

Git использовал пользователя root и поэтому имел разрешение на проверку папки /root/.ssh, но каким-то образом npm использовал каталог /home/user/.ssh и получал некоторые проблемы, связанные с разрешением.

После выполнения простого

 RUN npm config set cache /root
  

Я смог успешно выполнить приведенную ниже команду без каких-либо проблем.

 RUN --mount=type=ssh,id=github GIT_SSH_COMMAND="ssh -vvvT -o StrictHostKeyChecking=no" npm install git ssh://git@github.****