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 с ошибкой