#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.****