Докеризация приложения
Лабораторная работа №2
Docker: Запуск nginx
Цель лабораторной: запустить в докере рабочий веб-сервер nginx
- Образ должен быть легковесным
- Должна быть возможность конфигурирования через файл
- Статика должна быть внешним томом volume
Docker: докеризация приложения
Цель лабораторной: собрать из исходного когда и запустить в докере рабочее приложение (любое опенсорс, лучше python/django/flask, но можно и java или js).
- Образ должен быть легковесным
- Вся конфигурация выполняется через переменные окружения
- Статика (зависимости) должна быть внешним томом `volume`
- Создать файл `docker-compose` для старта и сборки
Docker: Мультистейджинг, сборка и запуск
Цель лабораторной: освоить подход создания легковесного образа путем сборки приложения на одном образе, и запуска на другом. Рекомендуется использовать любое опенсорс приложение требующее SDK для сборки.
- Образ должен быть легковесным
- Сборка приложения должна происходить в первом образе
- Запуск приложения выполняется в новом образе, через копирование артефакта
- Вся конфигурация выполняется через переменные окружения
- Всё оформлено в одном Dockerfile
Docker: Мультистейджинг, различные уровни зависимостей
Цель лабораторной: освоить методы создания образов с разными уровнями зависимостей
- Для системных зависимостей приложения создаем образ name:system
- Для зависимостей сборки создаем образ name:build
- Для приложения создаем образ name:app
- Вся конфигурация выполняется через переменные окружения
Docker: Docker-compose и мультирепозиторий
Цель лабораторной: освоить запуск полноценного веб-приложения из разных репозиториев. Приложение должно содержать фронтенд и бэкэнд части из соответствующих репозиториев. Компоуз-файл должен запускать базу данных для приложения, и обратный прокси nginx
- Учесть запуск `backend`, `frontend`, `db` и `nginx-proxy`
- Вся конфигурация выполняется через переменные окружения, передающиеся через `env_file` и `environment`
- Точкой входа является только `nginx-proxy`, остальные сервисы не имеют открытых наружу портов
- Должна быть возможность конфигурирования через файлы настроек в виде `volume`