TuBrief
구독 채널
비디오
커뮤니티

Lösung von Container-Isolierungsfehlern bei der Bereitstellung des YC qm Agent Harness in der Unternehmensinfstruktur

TuBrief 편집팀
2026년 9월 7일
0
Computing/Software

원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.

Deutsch한국어Portuguêsहिन्दीFrançaisРусскийBahasa Indonesia日本語EnglishEspañolالعربية中文

관련 영상

YC hat gerade sein Multiplayer-Harness als Open Source veröffentlicht5:45

YC hat gerade sein Multiplayer-Harness als Open Source veröffentlicht

Better Stack

커뮤니티의 다른 글

사내 시스템에 llm api 붙일 때 마주하는 현실적인 한계와 대응법

2026년 9월 13일

레거시 백엔드에 GPT-6 Astra 붙일 때 예산 승인과 보안 통과를 먼저 끝내는 법이 있습니다

2026년 9월 13일

에이전트끼리 대화하다 6천만 원 청구서가 나오는 이유

2026년 9월 13일

사내 RAG 벡터 검색에 Okta 권한 필터를 직접 거는 방법

2026년 9월 13일

브라우저 에이전트에게 내 구글 계정을 통째로 넘기면 안 되는 이유

2026년 9월 12일

Apple Won the AI Race

2026년 9월 12일

댓글 (0)

Log in to leave a comment

아직 작성된 글이 없습니다

© 2026 . All rights reserved.

TuBrief
구독 채널
비디오
커뮤니티
로그인

Lösung von Container-Isolierungsfehlern bei der Bereitstellung des YC qm Agent Harness in der Unternehmensinfstruktur

Behebung von Netzwerk-Bridge-Verbindungsproblemen zwischen lokaler On-Premises-Infrastruktur und qm-Isolierungscontainern

Direkt nach dem Klonen des qm-Repositorys von Y Combinator in einer On-Premises-Unternehmensumgebung führt der Versuch, eine Verbindung zu einer lokalen Entwicklungs-PostgreSQL oder einem Redis herzustellen, zu sofortigen ECONNREFUSED-Fehlern. Dies liegt daran, dass das isolierte Netzwerk-Namespace- 구조 (Struktur) von Docker-Containern dazu führt, dass localhost im Container nur auf die eigene virtuelle Loopback-Schnittstelle des Containers verweist, anstatt auf den Host. Wie die Betriebserfahrungen der internen Plattform von Shopify und des Coding-Systems von Stripe belegen, ist die stabile Einrichtung der Netzwerkgrenze zwischen dem Agenten-Brain und der Sandbox unerlässlich.

Um dieses Problem zu lösen, muss die host-gateway-Mapping-Technologie der Docker Engine angewendet werden, um einen Host-exklusiven virtuellen DNS-Eintrag zu injizieren. Erstellen Sie zunächst eine docker-compose.override.yml-Datei, um den Host-Kommunikationspfad zu definieren.

  • Erstellen Sie im Projektstamm eine docker-compose.override.yml-Datei und fügen Sie im extra_hosts-Block die Einstellung host.docker.internal:host-gateway hinzu.
  • Definieren Sie im Eintrag networks ein qm-internal-bridge-Bridge-Netzwerk und weisen Sie den Subnetzbereich 172.28.0.0/16 zu.
  • Fügen Sie in der Konfigurationsdatei von PostgreSQL die Zugriffsberechtigungen für diesen Subnetzbereich hinzu und starten Sie den Dienst neu.

Durch das Anwenden dieser Einstellung kann der Zeitaufwand für Integrationstests der Unternehmensdatenbank von 4 Stunden auf 15 Minuten verkürzt werden.

Benutzerdefinierte Konfiguration von qm-Dateisystemberechtigungen und Volume-Mounts gemäß strengen internen Sicherheitsprüfungsstandards

Beim ersten Start mit der strikten Sicherheitskonfiguration des qm Harness treten häufig EACCES- oder Permission Denied-Fehler auf. Der Grund dafür ist, dass die Validierungsfunktion des qm-Kerns nicht nur Änderungen am Arbeitszielverzeichnis, sondern auch den von der Laufzeit erzeugten internen temporären Dateibereich als potenzielle Änderung bewertet und den Befehl abbricht.

Um die Anforderungen des Sicherheitsprüfungsteams zu erfüllen und die Genehmigungsdauer um 2 Wochen zu verkürzen, muss das Dateisystem streng geschichtet werden.

  • Versiegeln Sie das Root-Dateisystem des Containers in der Docker-Konfiguration im unveränderlichen Zustand (read_only: true).
  • Weisen Sie mithilfe der Option tmpfs den Pfaden /tmp und /home/sandbox/.cache jeweils ein speicherbasiertes temporäres Dateisystem zu.
  • Verbinden Sie nur den Arbeitsbereich, in dem sich der eigentliche Quellcode befindet, über eine Bind-Mount-Methode und injizieren Sie gleichzeitig die unternehmensweite, schreibgeschützte Sicherheitsregeldatei.

Durch diese Volume-Mount-Konfiguration kann eine Struktur vervollständigt werden, bei der Angreifer innerhalb des Containers kein Schadskript dauerhaft auf dem Host-Betriebssystem speichern können.

Behebung von Statuskonflikten und Trennung des dauerhaften Speichers bei gleichzeitigen Aufgaben in einer Multi-Agenten-Umgebung

Wenn mehrere Backend-Entwickler gleichzeitig auf dieselbe qm-Instanz zugreifen und Agentenaufgaben ausführen, führt die Verwendung eines einzelnen gemeinsamen Verzeichnisses zu SQLITE_BUSY-Fehlern und Git-Index-Sperrkonflikten. Da die qm-Architektur Bereiche auf Basis von persönlichen Arbeitsbereichen, Kanälen und Projekten als Berechtigungs- und Ressourcenbesitzeinheiten definiert, muss die Konfiguration zur gemeinsamen Nutzung eines einzelnen Verzeichnisses in eine bereichsbasierte, dynamische Mount-Struktur umgestaltet werden.

Um gleichzeitige Datenüberschreibungsfehler von vornherein zu blockieren, wird eine Volume-Isolierung unter Verwendung von Bereichs-Hashes angewendet.

  • Führen Sie die Variable ${SCOPE_ID} in der Bereitstellungskonfigurationsdatei ein, um Container Namen und Volume-Labels dynamisch zu generieren.
  • Führen Sie ein 1:1-Bind-Mount des Arbeitsverzeichnisses des Hosts mit dem Pfad /var/qm/workspaces/${SCOPE_ID}/src durch.
  • Registrieren Sie ein automatisches Bereinigungsskript als Cron-Job, das Container entfernt, die länger als 8 Stunden ungenutzt bleiben, und verwaiste Git-Sperrdateien bereinigt.

Durch das Anwenden dieser Struktur können Datenüberschreibungsfehler bei der gleichzeitigen Ausführung von Agenten von vornherein blockiert und ein unabhängiger Arbeitsbereich garantiert werden.

Kombination aus bestehendem unternehmensinternem Authentifizierungssystem und qm-Multitasking-Umgebung sowie praktische Berechtigungssteuerung

Wenn ein Agent Code pullt oder einen Branch pusht und das Authentifizierungstoken des unternehmensinternen Git-Servers im Klartext auf der internen Festplatte der Sandbox gespeichert wird, besteht die Gefahr, dass die Anmeldeinformationen entwendet werden. Für eine sichere Verwaltung der Anmeldeinformationen muss ein speicherbasiertes Injektionssystem aufgebaut werden.

Eine Pipeline, die Anmeldeinformationen ausschließlich im Speicher austauscht, ist wie folgt aufgebaut:

  • Generieren Sie Token im speicherbasierten temporären Dateisystem des Hosts und beschränken Sie die Berechtigungen auf 0700.
  • Schreiben Sie ein Handler-Skript, das die standardmäßige GIT_ASKPASS-Schnittstelle von Git aufruft, in den Speicherpfad.
  • Binden Sie beim Start des isolierten Containers ausschließlich diesen Speicherpfad schreibgeschützt als Mount ein und heben Sie den Mount nach Beendigung der Arbeit sofort wieder auf.

Durch die Ausführung des Befehls umount nach Beendigung der Arbeit wird der Speicherbereich sofort freigegeben, wodurch die Möglichkeit des Verbleibs von Anmeldeinformationen vollständig beseitigt und die unternehmensinterne Authentifizierungsrichtlinie eingehalten wird.