Как построить npm внутри Docker с несколькими уровнями приватных зависимостей репо - PullRequest
0 голосов
/ 01 мая 2018

Кто-нибудь знает, как выполнить установку npm внутри Docker, который должен иметь доступ к нескольким зависимостям репозиториев GitHub? У меня следующая ситуация, когда я должен установить npm из частного репозитория (у меня есть разрешение), но топ-проект засасывает другие репозитории из той же организации. Такие как:

нпм и боб / топ-фу

top-foo's package.json имеет

  "dependencies": {
    "middle-foo": "bob/middle-foo",

middle-foo's package.json имеет

  "dependencies": {
    "bottom-foo": "bob/bottom-foo",

У меня нет проблем с запуском этого приложения из среды Linux, так как мой ssh ​​загружен в мою учетную запись GitHub. Проблема, конечно, в том, что образ Docker запускается от имени root, и я не могу понять, как протолкнуть учетные данные в установки зависимостей.

В данный момент мой файл Docker как бы обнажён, так как я даже не могу получить ключ для аутентификации. Я создал новый с помощью ssh-keygen и пытаюсь его использовать:

FROM node:6

ARG git_personal_access_token
RUN echo $git_personal_access_token
ARG SSH_PRIVATE_KEY
RUN echo $SSH_PRIVATE_KEY

RUN mkdir /root/.ssh/
RUN chmod 700 /root/.ssh
RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.com > /root/.ssh/known_hosts
RUN echo $SSH_PRIVATE_KEY > /root/.ssh/id_rsa
RUN chmod 600 /root/.ssh/id_rsa

RUN eval $(ssh-agent);ssh-add;ssh -vvv -T -i /root/.ssh/id_rsa git@github.com

1 Ответ

0 голосов
/ 01 мая 2018

У меня нет проблем с запуском этого приложения из среды Linux, так как мой ssh ​​загружен в мою учетную запись GitHub.

Затем вам нужно вставить ssh-ключи в зашифрованном виде в ваш образ докера.
Не ваши собственные закрытые ключи ssh, а новые ключи развертывания , созданные специально для этого, чьи открытые ключи зарегистрированы в соответствующих репозиториях (в отличие от регистрации в вашей учетной записи).

См. " Автоматизация отправки частей git-репо в облачное хранилище Google ": идея состоит в том, чтобы создать сценарий, который расшифровывает эти частные зашифрованные ключи ssh для развертывания и помещает их в контейнер ~/root/.ssh по адресу среда выполнения, позволяющая докеру получать доступ к этим частным репо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...