diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d186e04 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM python:3.11-slim-bookworm AS builder + +WORKDIR /build + +RUN apt-get update && apt-get install -y --no-install-recommends \ + build-essential \ + && rm -rf /var/lib/apt/lists/* + +COPY pyproject.toml requirements.txt ./ +RUN pip install --no-cache-dir --prefix=/install -r requirements.txt + +FROM python:3.11-slim-bookworm AS runtime + +WORKDIR /app + +ENV PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + PIP_NO_CACHE_DIR=1 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 + +COPY --from=builder /install /usr/local +COPY pyproject.toml ./ +COPY src/ ./src/ + +RUN groupadd --gid=1000 appgroup && \ + useradd --uid=1000 --gid=appgroup --shell /bin/bash --create-home appuser && \ + chown -R appuser:appgroup /app + +USER appuser + +EXPOSE 8080 + +ENTRYPOINT ["python", "-m", "src"] + +CMD ["serve"]