FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS base
ARG COMMIT_ID
ENV COMMIT_ID=${COMMIT_ID}
ARG BUILD_AT
ENV BUILD_AT=${BUILD_AT}
WORKDIR /app
ARG UID=10001
RUN adduser \
--disabled-password \
--gecos "" \
--home "/home/appuser" \
--shell "/sbin/nologin" \
--uid "${UID}" \
appuser
RUN apt-get update && apt-get install -y --no-install-recommends \
gcc \
libmariadb-dev-compat \
libmariadb-dev \
curl \
pkg-config && \
rm -rf /var/lib/apt/lists/* \
&& apt-get clean
FROM base AS final
WORKDIR /app
COPY . .
RUN chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
RUN uv sync
CMD ["uv", "run", "--with", "gunicorn", "gunicorn", "app:app", "--workers", "4", "--worker-class", "uvicorn.workers.UvicornWorker", "--bind", "0.0.0.0:8000"]