# CP2A1 — Trusted Gate Evaluator (External Gate Enforcement Foundation) # STRICTLY NON-PRODUCTIVE / NO AUTONOMY. # Minimaler Container: python:3.12-slim, kein Shell-Zugriff, read-only FS. # # HINWEIS zum User: Der Evaluator MUSS die root-owned CP1-State-Dateien # (/opt/control-plane/state/, root:root 0700/600) lesen. Daher laeuft der # Container als root (container-intern, KEIN Host-Root — konsistent mit dem # CP2D-Ground-Truth-Muster). Die Härtung erfolgt ueber: # --cap-drop ALL --no-new-privileges --read-only --network # RO-State-Mount, kein Docker-Socket, keine Credentials, keine Egress. FROM python:3.12-slim ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 WORKDIR /app # Nur die Evaluator-Dateien (kein Build-Artefakt, kein Test-Code im Image) COPY gate_evaluator.py /app/gate_evaluator.py COPY control_reader.py /app/control_reader.py # Audit-Verzeichnis (eigenes Volume, append-only gegen RQ-Manipulation) RUN mkdir -p /audit # Kein Shell-Entrypoint: direkt Python. Kein /bin/sh im CMD. ENTRYPOINT ["python3", "/app/gate_evaluator.py"]