Руководство по непрерывной интеграции и развертыванию приложения Dockerised Node в AWS Elastic Beanstalk с помощью Travis

Вступление

У этого произведения две цели:

  • Быть самостоятельным руководством по созданию конвейера CI / CD с Travis
  • Чтобы стать частью большой серии статей, в которых сравниваются различные услуги CI / CD.

Репозиторий, в котором размещен проект, протестированный и развернутый с помощью Travis, можно найти на GitHub. Это небольшое приложение Node / Express, Dockerized и имеющее единственный тест. Я рекомендую вам клонировать это приложение и загрузить его в свою учетную запись GitHub, чтобы вы могли построить конвейер, читая это руководство.

Прочтите мои другие руководства CI / CD с этим же приложением ниже:









Статья, сравнивающая эти сервисы:



Обзор конвейера

Диаграмму, показывающую шаги, выполняемые в нашем конвейере CI / CD, можно увидеть ниже. Обратите внимание, как мы используем Docker Hub для хранения наших образов Docker и Elastic Beanstalk для извлечения и запуска этих образов:

Предварительные шаги

Для этой части нам нужно создать пользователя AWS, чтобы Трэвис мог программно получить доступ к Elastic Beanstalk.

В моем руководстве ниже объясняется, как это сделать (вам будут предоставлены AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY переменные):



Затем нам нужно создать приложение на Elastic Beanstalk, которое Трэвис сможет развернуть. В моем руководстве ниже объясняется, как это сделать:



Последний шаг - создание репозитория Docker Hub. Опять же, смотрите мое руководство о том, как это сделать:



Трэвис Си

Сначала перейдите на https://travis-ci.com и нажмите Войти через Github:

После этого вы должны увидеть панель управления, на которой показаны ваши подключенные проекты. Я заблокировал другие личные проекты, которые у меня есть. Нажмите маленькую кнопку +, чтобы добавить новый проект:

Затем найдите свой репозиторий Github и нажмите кнопку Настройки:

Прокрутите вниз и добавьте свои учетные данные AWS и Docker Hub, созданные ранее (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, DOCKER_USER, и DOCKER_PASS).

Следующим шагом будет создание .travis.ymlfile в корне каталога вашего проекта. Если вы посмотрите в репозиторий Github, вы увидите следующий файл:

Давайте разберемся, что происходит во время выполнения этой сборки:

  1. Базовый образ - это контейнер Node Docker.
  2. Служба докеров используется, чтобы впоследствии можно было использовать команды докеров.
  3. Пакеты установлены (по умолчанию Travis кеширует модули npm)
  4. Тесты запущены
  5. Затем образ Docker создается и отправляется в Docker Hub с переменными среды DOCKER_USER и DOCKER_PASS.
  6. Этот шаг сильно отличается от других сервисов, поскольку Travis предлагает собственный метод развертывания Elastic Beanstalk (вместо использования интерфейса командной строки). Просто нужно указать детали конфигурации Elastic Beanstalk в формате, указанном Трэвисом, а они позаботятся обо всем остальном.

Мы, наконец, готовы к работе, поэтому сделайте небольшой нерелевантный коммит, и, если немного повезет, ваш проект должен успешно протестироваться, построить и развернуть:

Заключение

Надеюсь, вам понравилось это руководство. Ознакомьтесь с другими моими статьями, чтобы узнать, как можно использовать разные службы CI / CD для развертывания одного и того же приложения.

👋 Присоединяйтесь к нам сегодня !!

️ Подписывайтесь на нас в LinkedIn, Twitter, Facebook и Instagram

Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить свою поддержку! ⬇