Для удобства запуска создан script.sh
Скрипт запускает сервис (web_app), Postgres и nginx, накатывает миграции, создает суперпользователя root
с паролем Qwer!234
по-умолчанию (можно скрипту указать в качестве аргументов имя и пароль учетки суперпользователя, например ./script.sh admin 123
)
Т.к. в задании ничего не сказано про хранение данных, то volumes создавать не стал (кроме nginx -- подтягивается файл конфигурации)
Nginx принимает запросы на 80, после чего проксирует их сервису web_app на 8000 порт, поэтому запускать в браузере нужно http://localhost/admin
Создан также пайплайн, которые проводит тестирование сервиса после каждого пуша в репозиторий, при удачном тестировании пушит его в https://hub.docker.com/r/zelez/devops-test с тэгом формируемым github.sha
- Надо подготовить docker-compose.yml файл, который позволит собирать и запускать базу данных Postgres, выполнять все необходимые миграции и запускать сервис. Как результат этого шага я должен иметь возможность выполнить команду
docker-compose build
для сборки свежего образа сервиса. Иdocker-compose up
для запуска сервиса. Посдле запуска в браузере по адресу http://localhost:8000/admin я должен увидить страницу с формой ввода логина и пароля. Порт на котором будет запущен сервис можете выбрать на ваше усмотрение. - Надо реализовать CI процесс в Github для запуска тестов и в случае их успешного прохождения выполнить сборку docker образа. Если же тесты не прошли весь CI процесс должен падать с ошибкой.
- В качестве усложнения первого задания, запустить сервис с испоьзованием Nginx и созданием пользователя при старте docker-compose. В этом случае в форме ввода логина и пароля я смогу ввести данные и перейти в панель администратора.
- В качестве усложнения задания 2 настроить тегирование собираемого образа и задеплоить его в docker-hub (https://hub.docker.com/) в открытый репозиторий. В нем доступна бесплатная загрузка одного образа. Этого дотаточно для тестового задания.