FROM python:3.13-slim 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 \ && cp /root/.local/bin/uv /usr/local/bin/uv WORKDIR /app RUN useradd --create-home appuser \ && chown -R appuser:appuser /app USER appuser ENV XDG_CACHE_HOME=/home/appuser/.cache \ UV_CACHE_DIR=/home/appuser/.cache/uv \ UV_LINK_MODE=copy \ PYTHONUNBUFFERED=1 COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev COPY . . EXPOSE 8000 CMD ["uv", "run", "uvicorn", "app.api:app", "--host", "0.0.0.0", "--port", "8000"] HEALTHCHECK --interval=30s --timeout=10s \ CMD curl -f http://localhost:8000/healthchecker