# Build stage FROM python:3.9-slim AS builder # Install build dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ gcc \ python3-dev \ && rm -rf /var/lib/apt/lists/* # Install MkDocs and plugins with exact versions for faster resolution RUN pip install --no-cache-dir \ mkdocs==1.6.1 \ mkdocs-material==9.5.39 \ mkdocs-macros-plugin==1.2.0 \ mkdocs-minify-plugin==0.8.0 \ mkdocs-awesome-pages-plugin==2.9.2 \ mkdocs-glightbox==0.4.0 # Set working directory WORKDIR /docs # Copy configuration and docs COPY mkdocs.yml . COPY docs/ ./docs/ # Build the static site with strict mode RUN mkdocs build --strict # Runtime stage FROM python:3.9-slim # Set working directory WORKDIR /site # Copy the built site from the builder stage COPY --from=builder /docs/site . # Expose port 80 EXPOSE 80 # Healthcheck to ensure the server is running HEALTHCHECK --interval=30s --timeout=3s \ CMD curl -f http://localhost:80/ || exit 1 # Serve the static site with Python's http.server CMD ["python", "-m", "http.server", "80"]