Установка / добавление nodejs в образ докера (Jenkins) навсегда - PullRequest
0 голосов
/ 11 сентября 2018

Как я могу (лучше всего) навсегда установить / добавить nodejs в образ докера (Jenkins)?

В результате получается образ докера с Jenkins и nodejs.

Цель - установить nodejs как глобальный инструмент в контейнере Jenkins.Для достижения установки папка nodejs должна быть известна.

Я видел, например, это решение, но что такое установочная папка Nodejs?

RUN curl -sL https://deb.nodesource.com/setup_8.x |sudo -E bash && \ sudo apt-get install -y nodejs

Автоматическое добавление nodejs (позже) во время сборки Jenkins не очень хорошая вещь, поскольку замедляет процесс сборки.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Помимо ответов, просмотрите это превосходное решение . Это позволяет установить nodejs и npm. Теперь я могу запустить 'npm' как команду в оболочке. Таким образом, нет необходимости в использовании Global Tools. Обратите внимание: он предполагает, что использование нескольких FROM не является хорошей практикой (больше).

Очень хорошим дополнением является этот совет . Если вам нужны версии с несколькими узлами, вы также можете определить их в своем Jenkinsfile!

0 голосов
/ 11 сентября 2018

Установка nodejs поверх образа jenkins - это путь.Добавление инструкции для установки nodejs внутри Dockefile - это стандартная вещь в Docker, которую нужно выполнять при упаковке зависимостей.

Автоматическое добавление nodejs (позже) во время сборки Jenkins не очень хорошая вещь, потому что это замедляетпроцесс сборки отключен.

Это не всегда так.Сборки Docker используют кеш для слоев, создаваемых при сборке Dockerfile.Таким образом, если вы устанавливаете nodejs в верхней части Dockerfile, вам нужно будет только один раз дождаться установки, а следующие команды сборки будут просто использовать кэш, и для установки nodejs внутри образа Jenkins не потребуется никакого дополнительного времени.

Я бы порекомендовал вам установить nodejs внутри образа jenkins, используя многоступенчатые сборки docker .Поскольку уже существует образ Docker для узла , вы можете использовать его для установки узла в образе jenkins.

FROM node as nodejs

FROM jenkins/jenkins
COPY --from=nodejs /usr/local/bin/node /usr/local/bin/node

Создав выше Dockerfile, вы получите изображение с jenkins.и узел установлен с использованием официального узла Docker образа.

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