FROM python:3.12-alpine as base ENV VENV_PATH=/app/.venv ENV PATH="$VENV_PATH/bin:$PATH" WORKDIR /app FROM base as builder ENV POETRY_VIRTUALENVS_IN_PROJECT=1 ENV POETRY_NO_INTERACTION=1 ENV POETRY_VIRTUALENVS_CREATE=1 RUN pip install poetry COPY pyproject.toml poetry.lock ./ RUN poetry install --no-root FROM base as runtime ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV PYTHONPATH=/app COPY --from=builder "$VENV_PATH" "$VENV_PATH" EXPOSE 80 COPY src ./src