FROM ghcr.io/astral-sh/uv:0.6 AS uv-stage FROM python:3.13-slim RUN groupadd -r appgroup && useradd -r -m -g appgroup appuser WORKDIR /app COPY --from=uv-stage /uv /usr/local/bin/uv RUN chmod +x /usr/local/bin/uv COPY pyproject.toml uv.lock* ./ RUN uv sync --frozen --no-dev COPY . . COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh USER root EXPOSE 8080 ENTRYPOINT ["/entrypoint.sh"]