Zum Inhalt springen

Laufzeitumgebung

Dieses Kapitel beschreibt Laufzeitumgebungen für Claude Code und deren sicherheitstechnische Einordnung.

Ziel ist es, Claude Code nutzbar zu machen, ohne unnötigen Zugriff auf das Host-System oder den Entwicklerkontext zu gewähren.

Folgende Umgebungen werden dabei betrachtet:

  1. im ai-Container
  2. im dev-Container
  3. im offiziellen Claude Code Development Container

Der ai-Container ist in dieser Guideline für die Ausführung von Claude Code vorgesehen und unterstützt parallel zum dev-Container. Er ist bewusst nicht als vollständiger Dev Container1 konzipiert, sondern als getrennte, restriktiver ausgelegte Laufzeitumgebung für AI.

  • Claude Code wird auf CLI-Ebene im Container genutzt.
  • Je nach Container (ai oder ai-agent) kann der Projektzugriff read-only oder read/write erfolgen.
  • Je nach Container werden unterschiedliche Claude-Settings verwendet.

Der dev-Container in diesem Setup ist für die eigentliche Entwicklungsarbeit vorgesehen. Er bildet die Standard-Arbeitsumgebung in VS-Code und ist nicht auf die Nutzung von Claude Code ausgelegt.

  • Claude Code ist kein Bestandteil des Containers.
  • Auch die VS-Code Claude Code Extension ist dort nicht vorgesehen.
  • Die AI-Unterstützung erfolgt stattdessen parallel über den separaten ai-Container / ai-agent-Container.

Damit bleibt der dev-Container unabhängig von der Claude Code Laufzeitumgebung.

Claude Code stellt einen offiziellen Claude Code Development Container bereit. Dieser verfolgt jedoch einen anderen Ansatz; Er ist als primärer Dev Container im Sinne des VS Code Development Container Konzepts gedacht und integriert Claude Code direkt in dieselbe Umgebung, in der auch in der IDE entwickelt wird.

Er kombiniert sozusagen ai-agent- und dev-Container in einem.

  • Claude Code läuft direkt im Dev Container.
  • Der Fokus liegt auf einer integrierten, direkt nutzbaren Claude Code Umgebung.
  • Die VS Code Claude Code Extension kann genutzt werden
  • Der offzielle Claude Code Development Container umfasst zusätzlich eine Egress-Firewall.

Vergleich ai-Container vs. offizieller Development Container

Abschnitt betitelt „Vergleich ai-Container vs. offizieller Development Container“

Claude Code kann im ai- und ai-agent-Container funktional identisch zum offiziellen Development Container genutzt werden.

Der Unterschied liegt daher nicht in der Funktionalität, sondern im Architektur- und Sicherheitskonzept.

Der offizielle Claude Code Development Container ist als generalistische Entwicklungsumgebung konzipiert. Claude Code läuft dort direkt innerhalb des Dev Containers und ist eng in den IDE-Workflow integriert.

Die Entwicklungsumgebung dieser Guideline verfolgt dagegen einen gezielt isolierten Ansatz. Claude Code wird in dedizierten ai- bzw. ai-agent-Containern ausgeführt, getrennt von der eigentlichen Entwicklungsumgebung.

Dadurch lässt sich der Einsatz von Claude Code besser kontrollieren, insbesondere hinsichtlich Schreibzugriffen und Auswirkungen auf den Workspace.

Ein weiterer Unterschied betrifft den Workflow: Im offiziellen Development Container erfolgt die Nutzung typischerweise über die VS Code Claude Code Extension innerhalb des Dev Containers.

Im ai- / ai-agent-Container hingegen erfolgt die Claude Code Interaktion bewusst ausschließlich über die CLI. Dies reduziert die Kopplung an die IDE und erhöht die Isolation.

Auch das Sicherheitsmodell unterscheidet sich: Die ai- / ai-agent-Container sind restriktiver ausgelegt und beschränken die Möglichkeiten des Containers stärker. Im Gegenzug fehlen Komfortfunktionen des offiziellen Development Containers, wie die direkte VS Code Integration, aber auch eine Egress-Firewall2.


Der offizielle Claude Code Development Container mountet zusätzlich
ein Volume nach /commandhistory (siehe devcontainer.json und Dockerfile). Dieses wird verwendet, um die persistente Shell-History über Container-Neustarts hinweg zu speichern.

In der Umgebung dieser Guideline ist /commandhistory nicht enthalten.

  1. Im Sinne des VS Code Development Container Konzepts

  2. Ausgehende Netzwerkverbindungen werden nicht kontrolliert, wodurch die externe Abschottung nicht dem Sicherheitsniveau der offiziellen Implementierung entspricht.