README.md

В качестве шаблона была взята первая практическая работа.

Данный проект реализует CI/CD конвейер, конвейер состоит из трёх стадий:
  1. unit_tests - Выполнение юнит тестов, всего их 4.
  2. build - создания docker-образа, в проекте используется образ Docker in docker (dind) и перенос его в репозиторий Docker hub
  3. deploy - деплой приложения (dind).

В отличие от первой практической работы, здесь реализован деплой приложение с использованием docker compose. Деплой был сделан методом blue-green

Процесс выполнения задания:

  1. Настройка файла конфигурации nginx.conf. Здесь указываем на какой адрес будет перенаправлять nginx при запросе.

  2. Создание файла docker-compose. Прописываем три сервиса: nginx, blue и green. Задаём необходимые настройки, nginx будет работать на 80 порту. Важно указать, чтобы сеть (network) у сервисов была одна, для правильного взаимодействия между ними.

  3. Создаём файл shell. Для упрощения задачи тестирования приложения напишем Shell-скрипт, который последовательно выполнит все наши команды и запустит докер образ. Этот файл будет называться deploy_blue_green.sh. В данном файле будет прописана вся логика blue-green деплоя.

  4. Обновим CI/CD скрипт. Практически весь скрипт написано по аналогии с предыдущей практической работы. Изменим скрипт на стадии deploy:

    - docker pull $IMAGE_TAG
    - chmod +x deploy_blue_green.sh
    - ./deploy_blue_green.sh

Мы также пулим докер образ с репозитории Docker hub, однако далее мы изменяем права доступа к файлу .sh и запускаем его на исполнение. Докер образ запустится при выполнении Shell-скрипта.

Результатом работы будет запуск 5-и инстансов, которые заканчиваются успехом. Результат работы пайплайна

Конвейеры
10 успешных
0 с ошибкой