Dockerfile: добавьте npm в существующий образ докера - PullRequest
0 голосов
/ 19 сентября 2018

Имея образ Jenkins Docker, я бы хотел добавить к этому образу полную среду 'npm'.Поэтому после создания Dockerfile у меня есть образ как с Jenkins, так и со средой 'npm'.

Цель состоит в том, чтобы задание Jenkins запустить команду оболочки 'npm'.Так что 'npm' должно быть в $ PATH (в Ubuntu).

У меня уже есть Dockerfile со множеством вещей, таких как Jenkins и Maven.

Решение для узла было описано в этом посте .Важно то, могу ли я сделать что-то похожее?Какие папки я должен скопировать в образ докера Jenkins?

FROM node as nodejs

FROM jenkins/jenkins
// All kinds of other stuff goes here
COPY --from=nodejs /usr/local/bin/node /usr/local/bin/node ???

Автоматическая установка npm в инструменте Jenkins Global не является моим предпочтительным решением.

Ответы [ 2 ]

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

Использование нескольких директив FROM - это не функция, это ошибка .Предлагается удалить его, и вам следует избегать его использования

Если вам нужен npm в вашем jenkins, просто установите его там.В любом случае он основан на openjdk изображении.

FROM jenkins/jenkins

RUN apt-get install -y curl \
  && curl -sL https://deb.nodesource.com/setup_9.x | bash - \
  && apt-get install -y nodejs \
  && curl -L https://www.npmjs.com/install.sh | sh
0 голосов
/ 19 сентября 2018

Я столкнулся с той же проблемой некоторое время назад.В моем случае оказалось, что лучше использовать одноразовые контейнеры с правильными томами, а не использовать установленный узел / npm в контейнере с Jenkins.

Почему?Оказалось, что за это время использовалось много разных версий npm.Конечно, можно настроить две версии npm (взгляните на https://github.com/creationix/nvm), но лучшее решение, которое я выбрал, было следующее: https://getintodevops.com/blog/the-simple-way-to-run-docker-in-docker-for-ci.

Однако, пожалуйста, обратите внимание, что это был мойс моими проектами. Я использовал докер внутри контейнера Jenkins, чтобы можно было использовать что угодно с помощью конфигурации задания (или позже - Jenkinsfiles).

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