5.8 KiB
5.8 KiB
🐳 MC Panel - Docker Build & Push Guide
📋 Обзор
Этот проект настроен для сборки и публикации Docker образов в registry registry.nevetime.ru/mc-panel.
🚀 Быстрый старт
Вариант 1: Сборка и публикация (рекомендуется)
BUILD_AND_PUSH_DOCKER.bat
Вариант 2: Раздельные команды
# Сборка образа
BUILD_DOCKER.bat
# Публикация образа
PUSH_DOCKER.bat
📦 Создаваемые теги
При сборке создаются 3 тега:
registry.nevetime.ru/mc-panel:latest- последняя версияregistry.nevetime.ru/mc-panel:<git-hash>- привязка к коммиту (например:abc1234)registry.nevetime.ru/mc-panel:1.1.0- версия релиза
🔧 Требования
- Docker Desktop - должен быть установлен и запущен
- Git (опционально) - для автоматического тегирования по хешу коммита
- Доступ к registry - учетные данные для
registry.nevetime.ru
🔐 Авторизация в Registry
Перед первой публикацией выполните:
docker login registry.nevetime.ru
Введите ваши учетные данные:
- Username:
<ваш_username> - Password:
<ваш_password>
📝 Описание скриптов
BUILD_DOCKER.bat
Собирает Docker образ с тремя тегами:
- Проверяет наличие Docker
- Получает git hash (если доступен)
- Собирает multi-stage образ (frontend + backend)
- Создает теги: latest, git-hash, version
PUSH_DOCKER.bat
Публикует все теги в registry:
- Проверяет наличие Docker
- Последовательно публикует все 3 тега
- Выводит статус каждой операции
BUILD_AND_PUSH_DOCKER.bat
Комбинированный скрипт:
- Запускает BUILD_DOCKER.bat
- При успехе запускает PUSH_DOCKER.bat
- Останавливается при ошибках
🏗️ Структура Dockerfile
# Stage 1: Frontend build (Node.js)
FROM node:18-alpine AS frontend-builder
# ... сборка React приложения
# Stage 2: Backend + Frontend
FROM python:3.11-slim
# ... установка Python зависимостей
# ... копирование backend
# ... копирование собранного frontend
🔄 CI/CD с Drone
Проект также настроен для автоматической сборки через Drone CI:
Пайплайны:
- code-quality - проверка качества кода (lint, security)
- build-and-publish - сборка и публикация образа
Триггеры:
- Push в ветки:
main,master,develop - Создание тегов
Секреты Drone:
Настройте в Drone UI:
docker_username- имя пользователя registrydocker_password- пароль registry
📊 Размер образа
Благодаря multi-stage build:
- Frontend build stage: ~500MB (не включается в финальный образ)
- Final image: ~200-300MB (Python + compiled frontend)
🐛 Устранение неполадок
Docker не запущен
[ERROR] Docker is not installed or not running!
Решение: Запустите Docker Desktop
Ошибка авторизации
unauthorized: authentication required
Решение: Выполните docker login registry.nevetime.ru
Ошибка сборки
[ERROR] Build failed!
Решение:
- Проверьте логи сборки
- Убедитесь что все файлы на месте (frontend/package.json, backend/requirements.txt)
- Проверьте Dockerfile на ошибки
Git не найден
Если git не установлен, используется тег local вместо git hash.
Это нормально для локальной разработки.
📌 Использование образа
Docker Compose
version: '3.8'
services:
mc-panel:
image: registry.nevetime.ru/mc-panel:latest
ports:
- "8000:8000"
volumes:
- ./backend/data:/app/backend/data
- ./backend/servers:/app/backend/servers
environment:
- SECRET_KEY=your-secret-key
Docker Run
docker run -d \
-p 8000:8000 \
-v $(pwd)/backend/data:/app/backend/data \
-v $(pwd)/backend/servers:/app/backend/servers \
registry.nevetime.ru/mc-panel:latest
🔄 Обновление версии
Для создания нового релиза:
- Обновите версию в
BUILD_DOCKER.bat(строкаVERSION=1.1.0) - Создайте git tag:
git tag v1.1.0 - Запустите сборку:
BUILD_AND_PUSH_DOCKER.bat - Push тега:
git push origin v1.1.0
📚 Дополнительная информация
- Registry:
registry.nevetime.ru - Repository:
mc-panel - Base images:
node:18-alpine,python:3.11-slim - Exposed port:
8000 - Health check:
/api/auth/oidc/providers
✅ Checklist перед публикацией
- Docker Desktop запущен
- Авторизация в registry выполнена
- Все изменения закоммичены в git
- Версия обновлена (если нужно)
- Тесты пройдены
- Образ собран успешно
- Образ опубликован в registry
Версия документа: 1.0
Дата: 2026-01-15
Проект: MC Panel v1.1.0