Руководство по непрерывной интеграции и развертыванию приложения 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.yml
file в корне каталога вашего проекта. Если вы посмотрите в репозиторий Github, вы увидите следующий файл:
Давайте разберемся, что происходит во время выполнения этой сборки:
- Базовый образ - это контейнер Node Docker.
- Служба докеров используется, чтобы впоследствии можно было использовать команды докеров.
- Пакеты установлены (по умолчанию Travis кеширует модули npm)
- Тесты запущены
- Затем образ Docker создается и отправляется в Docker Hub с переменными среды DOCKER_USER и DOCKER_PASS.
- Этот шаг сильно отличается от других сервисов, поскольку Travis предлагает собственный метод развертывания Elastic Beanstalk (вместо использования интерфейса командной строки). Просто нужно указать детали конфигурации Elastic Beanstalk в формате, указанном Трэвисом, а они позаботятся обо всем остальном.
Мы, наконец, готовы к работе, поэтому сделайте небольшой нерелевантный коммит, и, если немного повезет, ваш проект должен успешно протестироваться, построить и развернуть:
Заключение
Надеюсь, вам понравилось это руководство. Ознакомьтесь с другими моими статьями, чтобы узнать, как можно использовать разные службы CI / CD для развертывания одного и того же приложения.
👋 Присоединяйтесь к нам сегодня !!
️ Подписывайтесь на нас в LinkedIn, Twitter, Facebook и Instagram
Если этот пост был полезен, пожалуйста, нажмите несколько раз кнопку хлопка 👏 ниже, чтобы выразить свою поддержку! ⬇