# ============================================
# BreakPilot Lehrer Dokumentation - MkDocs Build
# Multi-stage build fuer minimale Image-Groesse
# ============================================

# Stage 1: Build MkDocs Site
FROM python:3.11-slim AS builder

WORKDIR /docs

RUN pip install --no-cache-dir \
    mkdocs==1.6.1 \
    mkdocs-material==9.5.47 \
    pymdown-extensions==10.12

COPY mkdocs.yml /docs/
COPY docs-src/ /docs/docs-src/

RUN mkdocs build

# Stage 2: Serve with Nginx
FROM nginx:alpine

COPY --from=builder /docs/docs-site /usr/share/nginx/html

RUN echo 'server { \
    listen 80; \
    server_name localhost; \
    root /usr/share/nginx/html; \
    index index.html; \
    location / { \
        try_files $uri $uri/ /index.html; \
    } \
    gzip on; \
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml; \
    gzip_min_length 1000; \
    location ~* \.(css|js|png|jpg|jpeg|gif|ico|svg|woff|woff2)$ { \
        expires 1y; \
        add_header Cache-Control "public, immutable"; \
    } \
}' > /etc/nginx/conf.d/default.conf

EXPOSE 80

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
    CMD wget --no-verbose --tries=1 --spider http://localhost/ || exit 1

CMD ["nginx", "-g", "daemon off;"]
