# syntax=docker/dockerfile:1
# Образ scan-gateway для dev и `make check-full`. Контекст сборки — корень репозитория.
# Платформенные пакеты raisa_* (Nexus) в образ не ставятся — та же логика, что в `make venv`.
FROM python:3.11-slim

ENV PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1

WORKDIR /app/api

COPY api/requirements.txt ./requirements.txt
RUN grep -Ev '^(raisa_|pylib_ai)' requirements.txt > /tmp/req.txt \
    && pip install --no-cache-dir -r /tmp/req.txt \
    && rm /tmp/req.txt

# Локальная библиотека передаётся дополнительным контекстом (make docker-build).
COPY --from=statements /setup.py /setup.cfg /pyproject.toml /MANIFEST.in /VERSION /requirements.txt /README.md /tmp/statements/
COPY --from=statements /arm_statements /tmp/statements/arm_statements
RUN pip install --no-cache-dir /tmp/statements && rm -rf /tmp/statements

COPY api/ ./

EXPOSE 8000

# Шлюз. Эмулятор ИС Сканирование запускается из этого же образа командой `python -m src.scan_emulator`,
# которую compose задаёт через `command`.
CMD ["python", "run_server.py"]
