FROM python:3.14-slim ENV POETRY_VERSION=2.4.1 \ POETRY_NO_INTERACTION=1 \ POETRY_VIRTUALENVS_CREATE=1 \ POETRY_VIRTUALENVS_IN_PROJECT=1 \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 WORKDIR /app RUN apt-get update \ && apt-get install --no-install-recommends -y \ build-essential \ curl \ git \ && pip install --no-cache-dir "poetry==${POETRY_VERSION}" \ && rm -rf /var/lib/apt/lists/* COPY pyproject.toml poetry.lock ./ RUN poetry install --with dev --no-root --no-ansi RUN groupadd --system app \ && useradd --system --gid app --home-dir /app --shell /usr/sbin/nologin app \ && chown -R app:app /app USER app