Files
NeveTimePanel/Dockerfile
arkonsadter ca7882b84a
Some checks failed
continuous-integration/drone/push Build is failing
Fixed Dockerfile
2026-01-15 21:22:13 +06:00

64 lines
1.7 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Multi-stage build для MC Panel
# Stage 1: Build Frontend
FROM node:18-alpine AS frontend-builder
WORKDIR /app/frontend
# Копируем package файлы
COPY frontend/package*.json ./
# Устанавливаем ВСЕ зависимости (включая dev для сборки)
RUN npm ci
# Копируем исходники фронтенда
COPY frontend/ ./
# Собираем фронтенд
RUN npm run build
# Stage 2: Backend + Frontend
FROM python:3.11-slim
# Устанавливаем системные зависимости
RUN apt-get update && apt-get install -y \
curl \
&& rm -rf /var/lib/apt/lists/*
# Создаем рабочую директорию
WORKDIR /app
# Копируем requirements и устанавливаем Python зависимости
COPY backend/requirements.txt ./backend/
RUN pip install --no-cache-dir -r backend/requirements.txt
# Копируем backend
COPY backend/ ./backend/
# Копируем собранный frontend из первого stage
COPY --from=frontend-builder /app/frontend/dist ./frontend/dist
# Создаем необходимые директории
RUN mkdir -p /app/backend/servers
# Создаем пользователя для запуска приложения
RUN useradd -m -u 1000 mcpanel && \
chown -R mcpanel:mcpanel /app
USER mcpanel
# Переменные окружения
ENV PYTHONUNBUFFERED=1
ENV PORT=8000
# Открываем порт
EXPOSE 8000
# Healthcheck
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/api/auth/oidc/providers || exit 1
# Запускаем приложение
WORKDIR /app/backend
CMD ["python", "main.py"]