Важные моменты:
- в один коммит не поместится задача, поэтому от этой иши делаем подзадачи с конкретной реализацией какого-либо функционала из задачи
- PR в dev
- плагин ламбук не забываем
- космический-неоновый стиль, переиспользуем текущие компоненты фронта, делаем пока что монолитом
По реализации:
Общее описание-
Структура тренажёра
- Бэкенд (Java + Spring Boot)
Docker-образы:
backend-service
database (делаем миграции ликибейз).
Что проверять:
Умение работать с Dockerfile для Java-приложений.
Настройку сетей (network), volumes для БД.
Запуск связки backend + database через docker-compose.
- Фронтенд (React)
Docker-образ(можно не запихивать в образ и обойтись командой):
frontend-service
Что проверять:
Сборку статики через Dockerfile.
Проксирование API (настройка Nginx) при необходимости
Интеграцию с бэкендом (CORS, переменные окружения)- настроено в текущей реализации, важно, чтоб не слетело
- Общая инфраструктура
docker-compose.yml — для запуска всего стека - сделаю я @linskay
.env — переменные окружения (порт бэкенда, URL API и т. д.). @linskay (@nbv92 шаблон уже в проекте, нужно, чтоб чувствительные данные не попали в коммит)
Это нужно сделать будет:
тренажер, примерная структура, пока что на 3 уровня тренажера, с меню не женить(реализую менюшку, потом подвяжем)
🎯 Примеры заданий
🔹 Уровень 1: Базовый Docker
Запусти контейнер с PostgreSQL:
Требование: контейнер должен быть назван training-db и использовать volume для данных.
Проверка: docker ps показывает запущенный контейнер + docker volume ls.
Собери образ для Spring Boot приложения:
Дан: Dockerfile с ошибкой (например, отсутствует EXPOSE 8080).
Задача: исправить и собрать образ (docker build -t backend-app .).
🔹 Уровень 2: Docker Compose
Напиши docker-compose.yml для бэкенда и БД:
Условия:
Бэкенд зависит от PostgreSQL.
Нужно прописать environment (логин/пароль БД).
Проверка: docker-compose up -d и запрос к API (curl localhost:8080/api).
Добавь React-фронтенд в docker-compose:
Условия:
Фронтенд должен проксировать API бэкенда.
Порт 3000 → 80 (Nginx).
Проверка: Открыть localhost:80 и увидеть работающее React-приложение.
🔹 Уровень 3: Продвинутые сценарии
Оптимизируй Dockerfile для React:
Исходный файл использует node:16 для production-сборки.
Задача: переделать на мультистадийный build (builder + Nginx).
Настрой логирование в Docker:
Задача:
Сделать так, чтобы логи бэкенда писались в файл backend.log на хосте.
Проверка: docker-compose logs + наличие файла на хосте.
🛠 Техническая реализация
Проверка заданий:
Скрипты на Bash(? погуглить, возможно можно и делать на питоне, но тогда надо не по запросу реализовывать проверку, а по результату, что выводит прилдожение), которые анализируют docker ps, docker inspect, docker-compose config.
Для веб-версии — API (Java/Node.js), который запускает тесты в песочнице (Kubernetes/Docker-in-Docker).
Подсказки:
Если пользователь ввёл неправильную команду — давать пример (Hint: try docker run -d -p 5432:5432 postgres).
как улучшение-
Бонус: Готовый шаблон репозитория на GitHub с backend + frontend + docker-compose для старта например, полет творчеству, можно реализовать еще дополнительные уровни, интерактивный учебник по доккер и тд, все на твое усмотрение, что ты считаешь нужным, могу несколько ресурсов по доккер кинуть
Важные моменты:
По реализации:
Общее описание-
Структура тренажёра
Docker-образы:
backend-service
database (делаем миграции ликибейз).
Что проверять:
Умение работать с Dockerfile для Java-приложений.
Настройку сетей (network), volumes для БД.
Запуск связки backend + database через docker-compose.
Docker-образ(можно не запихивать в образ и обойтись командой):
frontend-service
Что проверять:
Сборку статики через Dockerfile.
Проксирование API (настройка Nginx) при необходимости
Интеграцию с бэкендом (CORS, переменные окружения)- настроено в текущей реализации, важно, чтоб не слетело
docker-compose.yml — для запуска всего стека - сделаю я @linskay
.env — переменные окружения (порт бэкенда, URL API и т. д.). @linskay (@nbv92 шаблон уже в проекте, нужно, чтоб чувствительные данные не попали в коммит)
Это нужно сделать будет:
тренажер, примерная структура, пока что на 3 уровня тренажера, с меню не женить(реализую менюшку, потом подвяжем)
🎯 Примеры заданий
🔹 Уровень 1: Базовый Docker
Запусти контейнер с PostgreSQL:
Требование: контейнер должен быть назван training-db и использовать volume для данных.
Проверка: docker ps показывает запущенный контейнер + docker volume ls.
Собери образ для Spring Boot приложения:
Дан: Dockerfile с ошибкой (например, отсутствует EXPOSE 8080).
Задача: исправить и собрать образ (docker build -t backend-app .).
🔹 Уровень 2: Docker Compose
Напиши docker-compose.yml для бэкенда и БД:
Условия:
Бэкенд зависит от PostgreSQL.
Нужно прописать environment (логин/пароль БД).
Проверка: docker-compose up -d и запрос к API (curl localhost:8080/api).
Добавь React-фронтенд в docker-compose:
Условия:
Фронтенд должен проксировать API бэкенда.
Порт 3000 → 80 (Nginx).
Проверка: Открыть localhost:80 и увидеть работающее React-приложение.
🔹 Уровень 3: Продвинутые сценарии
Оптимизируй Dockerfile для React:
Исходный файл использует node:16 для production-сборки.
Задача: переделать на мультистадийный build (builder + Nginx).
Настрой логирование в Docker:
Задача:
Сделать так, чтобы логи бэкенда писались в файл backend.log на хосте.
Проверка: docker-compose logs + наличие файла на хосте.
🛠 Техническая реализация
Проверка заданий:
Скрипты на Bash(? погуглить, возможно можно и делать на питоне, но тогда надо не по запросу реализовывать проверку, а по результату, что выводит прилдожение), которые анализируют docker ps, docker inspect, docker-compose config.
Для веб-версии — API (Java/Node.js), который запускает тесты в песочнице (Kubernetes/Docker-in-Docker).
Подсказки:
Если пользователь ввёл неправильную команду — давать пример (Hint: try docker run -d -p 5432:5432 postgres).
как улучшение-
Бонус: Готовый шаблон репозитория на GitHub с backend + frontend + docker-compose для старта например, полет творчеству, можно реализовать еще дополнительные уровни, интерактивный учебник по доккер и тд, все на твое усмотрение, что ты считаешь нужным, могу несколько ресурсов по доккер кинуть