tms-dos21-onl / anzhalika-tseliak

Apache License 2.0
0 stars 0 forks source link

[HW21] Docker (Dockerfile, Docker Compose) #28

Open AlexPykavy opened 3 months ago

AlexPykavy commented 3 months ago

Дедлайн: 06/05/2024

1. Написать Dockerfile для React приложения. Можно сгенерировать ресурсы для веб-сайта (HTML/CSS/JS файлы) прямо из исходников, а можно уже взять готовые из папки build. Собрать образ, запустить и проверить работоспособность приложения в контейнере.
2. (**) Написать Dockerfile для LAMP приложения, который устанавливает весь LAMP стек в один образ. Подсказка: для того, чтобы в Docker контейнере запускались службы, нужно установить systemd и задать его как ENTRYPOINT, а также запускать контейнер в привилегированном режиме. Например, как тут.
3. Написать Dockerfile для LAMP приложения, который устанавливает только само приложение в Apache используя php:apache Docker образ. Написать docker-compose.yaml, который разворачивает зависимости приложения (MySQL и Memcached) и запускает само приложение. Обратить внимание на /docker-entrypoint-initdb.d mount для MySQL, использование которого описано в документации к MySQL Docker образу. Посмотреть, что такое wait-for-it.sh и придумать, как его можно заиспользовать в этом задании.
4. (**) Запустить Java приложение с помощью docker-compose.yml, находящемся в репозитории.
5. (**) Написать Ansible playbook, который будет устанавливать Docker и Docker Compose на целевую VM с помощью роли, а затем будет запускать одно из следующих приложений с помощью Docker Compose:
- LAMP приложение
- Java приложение
- Nginx/PHP/MySQL приложение
Продумать какие переменные будут доступны для пользователя Ansible playbook и каким образом они будут встраиваться в docker-compose.yml.
6. (**) В качестве эксперимента, установить некоторую зависимость приложения (например, БД) из предыдущего пункта как сервис на VM при помощи Ansible роли. Само приложение оставить в Docker и настроить на работу с зависимостью на VM.

** не обязательны к выполнению. Задачи на интерес