FROM python:3.14-slim as base

ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

WORKDIR /app
RUN apt update && apt install make -y

ENV AGENT_USER="agent"
RUN useradd --shell /bin/bash agent
ENV WORKSPACE_DIR="/workspace/"
RUN mkdir -p $WORKSPACE_DIR && chown $AGENT_USER:$AGENT_USER $WORKSPACE_DIR

FROM base as builder

RUN apt install git -y
RUN pip install uv

COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-install-project --no-dev
RUN uv pip install git+https://git.lambda.coredump.ru/platform/agent_api.git

FROM base as production

COPY --from=builder /app/.venv /app/.venv
ENV PATH="/app/.venv/bin:$PATH"

COPY src/ /app/src/
COPY Makefile ./
COPY .mk/ ./.mk/

EXPOSE 8000

CMD ["make", "uvicorn-prod"]

FROM base as development

RUN pip install uv

COPY pyproject.toml uv.lock ./
RUN uv sync --frozen --no-install-project

COPY --from=agent_api . /agent_api/
RUN uv pip install -e /agent_api/

ENV PATH="/app/.venv/bin:$PATH"

COPY Makefile ./
COPY .mk/ ./.mk/

EXPOSE 8000

CMD ["make", "uvicorn-dev"]
