FROM python:3.14-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ UV_LINK_MODE=copy \ UV_COMPILE_BYTECODE=1 \ PATH="/app/.venv/bin:${PATH}" WORKDIR /app RUN apt-get update \ && apt-get install -y --no-install-recommends curl ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN curl -LsSf https://astral.sh/uv/install.sh | sh \ && ln -s /root/.local/bin/uv /usr/local/bin/uv COPY pyproject.toml uv.lock* ./ RUN uv sync --frozen --no-dev COPY app ./app COPY templates ./templates COPY data ./data RUN mkdir -p /app/data EXPOSE 8000 CMD ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]