# StartOS service image: the Boardroom Map orchestrator (control plane). # Build context is the PROJECT ROOT (manifest images.main.workdir = '.'), so # COPY paths are repo-relative. Arch-agnostic and GPU-free — it SSHes to the # Sparks and extracts document text on CPU. start-cli builds this for x86_64 + # aarch64. FROM python:3.11-slim RUN apt-get update && apt-get install -y --no-install-recommends \ openssh-client rsync tini ca-certificates && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY orchestrator/requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY orchestrator/ ./ # Ship the reviewer build context so the orchestrator can build the reviewer # image on the head Spark over SSH (see reviewers.ensure_reviewer_image). Lives # at /app/sandbox. COPY sandbox/ ./sandbox/ EXPOSE 8080 ENV BM_DATA_DIR=/data # main.ts overrides this command, but keep a sane default for local runs. ENTRYPOINT ["tini", "--"] CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8080"]