FROM python:3.10-slim-bookworm
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg libgl1 libglib2.0-0 && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY deployment/requirements-engine.lock.txt /tmp/requirements.txt
RUN pip install --no-cache-dir --extra-index-url https://download.pytorch.org/whl/cu124 -r /tmp/requirements.txt
COPY runtime /app/runtime
COPY backend /app/backend
COPY frontend /app/frontend
COPY normative/registry.json /app/normative/registry.json
COPY normative/sources/official_231_0.pdf /app/normative/sources/official_231_0.pdf
COPY scripts/start_engine.py scripts/start_gateway.py /app/scripts/
COPY deployment/source.tar.gz /app/deployment/source.tar.gz
RUN useradd --uid 10001 --create-home forte && mkdir -p /app/private_state /app/private_state/locks && chown -R forte:forte /app
USER forte
ENV HF_HUB_OFFLINE=1 HF_HUB_DISABLE_TELEMETRY=1 FORTE_STATE_DIR=/app/private_state XDG_RUNTIME_DIR=/app/private_state/locks
EXPOSE 8000 8100
CMD ["python", "scripts/start_engine.py"]
