# retoor <retoor@molodetz.nl>
DEFAULT_DOCKERFILE = """# syntax=docker/dockerfile:1
FROM python:3.13-slim-bookworm
ENV PYTHONUNBUFFERED=1 \\
PYTHONDONTWRITEBYTECODE=1
RUN useradd --create-home --shell /bin/bash app
WORKDIR /app
COPY . /app
RUN chown -R app:app /app
USER app
EXPOSE 8000
CMD ["python3", "-m", "http.server", "8000", "--directory", "/app"]
"""
PLAYWRIGHT_DOCKERFILE = """# syntax=docker/dockerfile:1
FROM python:3.13-slim-bookworm AS base
ENV PYTHONUNBUFFERED=1 \\
PYTHONDONTWRITEBYTECODE=1 \\
PIP_NO_CACHE_DIR=1 \\
PIP_DISABLE_PIP_VERSION_CHECK=1 \\
DEBIAN_FRONTEND=noninteractive \\
PLAYWRIGHT_BROWSERS_PATH=/opt/playwright
RUN apt-get update && apt-get install -y --no-install-recommends \\
git curl ca-certificates build-essential libpq-dev \\
&& rm -rf /var/lib/apt/lists/*
FROM base AS deps
RUN pip install \\
numpy pandas requests \\
fastapi "uvicorn[standard]" pydantic \\
sqlalchemy psycopg2-binary redis \\
httpx aiofiles python-dotenv \\
playwright \\
&& playwright install --with-deps chromium
FROM deps AS runtime
RUN useradd --create-home --shell /bin/bash app
WORKDIR /app
COPY . /app
RUN chown -R app:app /app /opt/playwright
USER app
CMD ["sleep", "infinity"]
"""