# REF https://github.com/scratchmex/poetry-docker-template/blob/main/dockerfile.jinja FROM python:3.11-slim-bookworm as base-python #################### # - Build Variables #################### ARG PIP_DISABLE_PIP_VERSION_CHECK 1 ARG PIP_NO_CACHE_DIR 1 ## Disable Non-Reproducible pip #################### # - Environment Variables #################### ENV PYTHONOPTIMIZE 1 ## Strip __debug__ ENV PYTHONUNBUFFERED 1 ## Disable stdout/stderr Buffering #################### # - Stage: Builder #################### FROM base-python AS base-builder WORKDIR /app-src RUN pip install -r requirements.txt #################### # - Stage: Production #################### FROM base-python as production RUN apt-get update \ && apt-get install --no-install-recommends -y \ curl RUN groupadd -g 1500 pyrunner && \ useradd -m -u 1500 -g pyrunner pyrunner COPY --chown=pyrunner:pyrunner ./app /app COPY --from=builder-base --chown=poetry:poetry /app-src/.venv /app/.venv USER poetry WORKDIR /app HEALTHCHECK CMD curl --fail http://localhost:3000 || exit 1 CMD poetry run uvicorn --proxy-headers --host=0.0.0.0 --port=3000 app.main:app