# CP2A2.2B — L1 Red Queen Worker: docker-compose # STRICTLY NON-AUTONOMOUS / NON-PRODUCTIVE. NO AUTONOMY. NO HEARTBEAT. NO SCHEDULER. # # Separate minimale L1 Worker Runtime. Der bestehende interaktive Container # `hermes-red-queen` bleibt UNVERAENDERT (wird hier NICHT referenziert). # # HAERTUNG: # - non-root hermes-User (UID 10000 / GID 10000, im Basis-Image definiert) # - read-only rootfs # - cap_drop ALL, no-new-privileges # - kein Docker-Socket, keine Host-Root-Mounts, keine Host-Namespaces # - eigenes internal-Netz (keine Egress, kein Internet) # - KEINE Credentials in ENV (Credential Zero Policy) # # NETZWERK-MODELL: # Der Worker haengt an einem eigenen internal-Netz `l1-internal`. # Gate-Evaluator, Ollama und Tolaria werden per `docker network connect` # zusaetzlich an dieses Netz angehaengt (nur Netzwerk-Attachment, KEINE # Config/ENV/Credential-Aenderung an diesen Containern). # Kein genereller Internet-Egress, kein Telegram/Notion/Forgejo-public. # # KEIN AUTOSTART-AUTONOMIE: # Der Container startet inert (sleep infinity). Kein autonomer Tick, kein # Heartbeat, kein Scheduler. Ein Tick wird ausschliesslich extern getriggert # (spaetere Phase) und ist in CP2A2.2B verboten. services: l1-red-queen-worker: build: . image: l1-red-queen-worker:cp2a2_2b container_name: l1-red-queen-worker restart: unless-stopped read_only: true cap_drop: - ALL security_opt: - no-new-privileges:true tmpfs: - /tmp volumes: # Worker-eigenes persistentes State-Volume (worker-owned, UID 10000). # Nur der Worker kann schreiben. Bestehende interaktive RQ darf dieses # Volume NICHT schreiben (separate Security Domain). - l1-worker-state:/opt/l1-worker/state networks: - l1-internal environment: [] # KEINE Credentials. KEIN Docker-Socket. KEINE Host-Root-Mounts. # KEIN Gateway, KEIN Telegram, KEIN API-Server, KEIN Cron. networks: l1-internal: driver: bridge internal: true volumes: l1-worker-state: