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.
Дедлайн: 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.
** не обязательны к выполнению. Задачи на интерес