В этой статье мы увидим, как использовать плагин Docker в Jenkins, который является самым простым способом создания приложений Javascript с использованием Yarn или запуска сценариев Java с использованием NodeJs, шаг за шагом.
Это позволит нам создавать или запускать код Javascript в контейнерах, которые будут созданы без необходимости настройки Docker и без ввода файла Docker. Легко и непринужденно.
Темы, которые мы рассмотрим:
3. Подготовка файла Jenkins для использования в конвейере Jenkins
4. Подготовка конвейера Jenkins для использования плагина Docker
«6. Как результат"
«8. Использованная литература"
- Что такое плагин Docker ?
Плагин Docker запустит наше приложение в контейнере Docker от нашего имени на виртуальном хосте (агенте), созданном плагином Docker. Это позволяет нам легко тестировать наши артефакты «по-настоящему», прежде чем выпускать их в производство.
Благодаря плагину Docker мы можем создавать или запускать код Javascript в создаваемых контейнерах без необходимости писать файл Docker и без работы с настройками Docker.
Этот плагин позволяет динамически подготавливать контейнеры как узлы Jenkins с помощью Docker. Это плагин Jenkins Cloud для Docker. Целью этого плагина Docker является возможность использовать хост Docker для динамической подготовки контейнера Docker в качестве узла агента Jenkins (1).
2. Установка плагина Docker на Jenkins.
Откройте панель управления Jenkins и перейдите на вкладку «Управление Jenkins» ›› «Управление плагинами» ›› «Доступно».
Найдите и выберите плагины «Docker», затем нажмите кнопку «Установить без перезагрузки», как показано на рисунке 1 ниже.
Кроме того, настройте эти плагины для конвейера CI/CD, которые мы используем в нашей практической работе в этой статье; Найдите и выберите плагины «GitHub Integration, Pipeline: GitHub, Docker Pipeline», затем нажмите кнопку «Установить без перезагрузки».
3. Подготовка файла Jenkins для использования в конвейере Jenkins
Перейдите к экземпляру сервера Jenkins, создайте каталог «javascript-to-use-with-yarn-and-nodejs-project»,
mkdir javascript-to-use-with-yarn-and-nodejs-project cd javascript-to-use-with-yarn-and-nodejs-project/
затем создайте файл с именем «Jenkinsfile» (вы можете использовать редактор Vim) в папке «javascript-to-use-with-yarn-and-nodejs-project».
vi Jenkinsfile
Нажмите «i» для редактирования и запишите приведенный ниже код на языке Groovy в Jenkinsfile. Затем, чтобы сохранить и выйти, нажмите «:wq».
pipeline { agent any stages { stage("Run app on Docker"){ agent{ docker{ image 'node:12-alpine' } } steps{ withEnv(["HOME=${env.WORKSPACE}"]) { sh 'yarn install --production' } } } } }
На первом этапе Jenkinsfile: Создаем контейнер из образа node:12-alpine. Мы написали «агент любой», потому что мы не устанавливали никаких агентов в Jenkins.
На втором этапе Jenkinsfile: мы назначили «WORKSPACE» в Jenkins в качестве рабочего каталога контейнера. Мы создали Javascript с помощью команды «yarn».
4. Подготовка конвейера Jenkins для использования плагина Docker
4. а. Перейдите на панель инструментов Jenkins и нажмите «Новый элемент», чтобы создать конвейер, как показано на рисунке 2 ниже.
4. б. Введите «javascript-to-use-with-yarn-and-nodejs-project», затем выберите «Конвейер» и нажмите «ОК», как показано на рисунке 3 ниже.
4. в. Настройте конвейер Jenkins, как описано, как показано на рис. 4–5–6 ниже;
- Поставьте галочку на «Триггер хука GitHub для опроса GITScm» в разделе «Триггеры сборки».
- Перейдите в раздел «Конвейер» и в поле «Определение» выберите «Скрипт конвейера из SCM».
- Выберите «Git» в поле «SCM».
- Введите URL-адрес репозитория проекта после того, как укажите репозиторий GitHub в пункте 4. d.
- Спецификатор ветки «*/main» Примечание. Вы должны установить это место в соответствии с веткой в вашем репозитории GitHub.
4. д. Установите ссылку на репозиторий GitHub:
Используйте приведенные ниже команды, чтобы загрузить «приложение javascript» на локальный ПК или в EC2.
wget https://github.com/cmakkaya/cmakkaya-javascript-to-use-with-yarn-and-nodejs/raw/main/to-do-app-nodejs.tar tar -xvf to-do-app-nodejs.tar
Затем извлеките с помощью команды «tar» и загрузите эти файлы в созданный вами репозиторий на GitHub с именем «javascript-to-use-with-yarn-and-nodejs-project».
Затем скопируйте «URL-адрес клона репозитория» (см. рис. 5) и введите URL-адрес репозитория проекта в «URL-адрес репозитория» (см. рис. 4).
Таким же образом загрузите Jenkinsfile в этот репозиторий GitHub.
Наконец, напишите в Script Path «Jenkinsfile» и нажмите кнопку «Сохранить», как показано на рисунке 6 ниже.
5. Запуск конвейера Jenkins и мониторинг сборки Java-скрипта с помощью Yarn через плагин Docker.
Нажмите кнопку Build Now, как показано на рисунке 7 ниже.
Отслеживайте ход сборки Java-скрипта с помощью Yarn через плагин Docker. Если результат соответствует рисунку 8 ниже и не выдает ошибку (красная метка), процесс сборки выполнен успешно.
Мы также можем видеть это в «Консольном выводе». Нажмите кнопку Build Now, как показано на рисунке 9 ниже.
Мы также можем увидеть сборку сценария Java с использованием Yarn в разделе «Консольный вывод», как показано на рис. 10 ниже. После завершения теста сборки контейнер останавливается, а затем удаляется.
6. В результате
Благодаря плагину Jenkins Docker мы легко протестировали сборку приложений Javascript с помощью Yarn. Точно так же мы можем проверить, запущено ли приложение Javascript, изменив код в файле Jenkins.
Таким образом, подключаемый модуль Jenkins Docker позволяет нам создавать или запускать код Javascript в создаваемых контейнерах без необходимости установки и настройки Docker, а также без ввода файла Docker. Легко и непринужденно.
Примечание: Вы можете получить доступ к необходимым файлам из аккаунта GitHub по ссылке.
7. Следующий пост
В следующем посте мы поговорим об использовании частного репозитория GitHub в URL-адресе репозитория проекта на рисунке 5. Для этого мы будем шаг за шагом использовать «токен доступа персонала GitHub».
Счастливого облака…
Для получения дополнительной информации и вопросов, пожалуйста, свяжитесь со мной …
Не забудьте подписаться на мой аккаунт LinkedIn или Medium, чтобы быть в курсе новых статей.
8. Ссылки