В этой статье мы увидим, как использовать плагин Docker в Jenkins, который является самым простым способом создания приложений Javascript с использованием Yarn или запуска сценариев Java с использованием NodeJs, шаг за шагом.

Это позволит нам создавать или запускать код Javascript в контейнерах, которые будут созданы без необходимости настройки Docker и без ввода файла Docker. Легко и непринужденно.

Темы, которые мы рассмотрим:

1. Что такое плагин Docker?

2. Установка плагина Docker.

3. Подготовка файла Jenkins для использования в конвейере Jenkins

4. Подготовка конвейера Jenkins для использования плагина Docker

5. Запуск пайплайна Jenkins и мониторинг сборки Java-скрипта с помощью Yarn через подключаемый модуль Docker.

«6. Как результат"

7. Следующее сообщение

«8. Использованная литература"

  1. Что такое плагин 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. Ссылки

(1) https://plugins.jenkins.io/docker-plugin/