Руководство по непрерывной интеграции и развертыванию приложения Dockerised Node в AWS Elastic Beanstalk с помощью AWS CodePipeline
Вступление
У этого произведения две цели:
- Быть самостоятельным руководством по созданию конвейера CI / CD с AWS CodePipeline
- Чтобы стать частью большой серии статей, в которых сравниваются различные услуги CI / CD.
Репозиторий, в котором размещен проект, протестированный и развернутый с помощью CodePipeline, можно найти на GitHub. Это небольшое приложение Node / Express, Dockerized и имеющее единственный тест. Я рекомендую вам клонировать это приложение и перенести его в свою учетную запись GitHub, чтобы вы могли построить конвейер, читая это руководство.
Прочтите мои другие руководства CI / CD с этим же приложением ниже:
Статья, сравнивающая эти сервисы:
Обзор конвейера
Диаграмму, показывающую шаги, выполняемые в нашем конвейере CI / CD, можно увидеть ниже. Обратите внимание, как мы используем Docker Hub для хранения наших образов Docker и Elastic Beanstalk для извлечения и запуска этих образов:
Предварительные шаги
Затем нам нужно создать приложение на Elastic Beanstalk, в котором можно будет развернуть CodePipleline. В моем руководстве (ниже) объясняется, как это сделать (вам будут предоставлены AWS_ACCESS_KEY_ID
и AWS_SECRET_ACCESS_KEY
переменные):
Последний шаг - создание репозитория Docker Hub. Опять же, смотрите мое руководство о том, как это сделать:
Настройка AWS CodePipeline:
Войдите в AWS и перейдите к сервису CodePipeline
. Затем нажмите Создать конвейер:
Затем вам будет предложено назвать свой конвейер (я назвал свое сравнение CI) перед тем, как нажать Далее:
Затем вам нужно будет добавить источник конвейера. Выберите GitHub, следуйте инструкциям по входу в систему, подключите свой репозиторий, выберите основную ветку и нажмите Далее:
Затем нам нужно добавить этап сборки. Выберите AWS CodeBuild в качестве поставщика сборки и нажмите «Создать проект». Это откроет новую вкладку, где вы настроите этап сборки.
Назовите свою сборку (я назвал свое сравнение CI) и прокрутите страницу вниз.
Выберите «Управляемый образ», «Операционная система Ubuntu», «Стандартная среда выполнения» и «Образ 2.0». Кроме того, включите флаг Privileged, так как мы хотим создавать образы Docker перед дальнейшей прокруткой вниз:
Затем добавьте переменные среды DOCKER_USER
и DOCKER_PASS
, в которые вы вводите свои учетные данные Docker Hub.
Выберите использовать файл buildspec, поскольку мы будем использовать файл buildspec.yml
в корневом каталоге нашего репозитория для определения шагов сборки. Наконец, нажмите «Перейти к CodePipeline».
Вкладка закроется, и вы вернетесь к конфигурации CodePipeline. Нажмите "Далее:
Наконец, нам нужно добавить этап развертывания. Выберите AWS Elastic Beanstalk в качестве поставщика развертывания и найдите свое приложение, прежде чем нажимать Далее. Для других служб CI / CD вам потребуется создать пользователя программно, чтобы его можно было развернуть на этом этапе.
Просмотрите свой конвейер и нажмите Создать конвейер:
Теперь просмотрите файл buildspec.yml
в корне нашего каталога:
Давайте разберемся, что происходит во время выполнения этой сборки:
- Указана версия узла.
- Сборка входит в нашу учетную запись Docker с переменными среды.
- Пакеты установлены.
- Испытания запущены.
- Затем образ Docker создается и отправляется в Docker Hub.
Наконец, нажмите «Выпустить изменение», , и оно должно успешно протестировать, построить и развернуть ваше приложение.
Заключение
Надеюсь, вам понравилось это руководство! Пожалуйста, дайте мне знать, если у вас есть отзывы о том, как я могу улучшить конвейер. Кроме того, ознакомьтесь с другими моими сообщениями позже на этой неделе, чтобы узнать, как разные службы CI / CD можно использовать для развертывания одного и того же приложения.
👋 Присоединяйтесь к нам сегодня !!
️ Подписывайтесь на нас в LinkedIn, Twitter, Facebook и Instagram
Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить свою поддержку! ⬇