Docker-Leitfaden

OpenCode mit Docker: Container einrichten und sicher prüfen

Kurz gesagt: Docker Sandbox eignet sich für einen verwalteten isolierten Workspace, Docker Model Runner für einen lokalen OpenAI-kompatiblen Endpoint und ein eigenes Image nur bei festen Paketen oder Netzwerkregeln. Halte Schlüssel außerhalb des Images, mounte nur das geplante Projekt, prüfe das Modell und beginne mit einer schreibgeschützten Aufgabe.

OpenCode mit Docker liefert eine reproduzierbare Laufzeit, eine klare Dateigrenze oder einen lokalen Modellpfad. Ein Container ist nicht automatisch sicher: Imagequelle, Mounts, Zugangsdaten, Netzwerk, Rechte und die Belege vor dem Schreiben müssen zusammenpassen.

Technische Editorial-Grafik von OpenCode mit Docker Sandbox, Docker Model Runner und kontrolliertem Projektcontainer
Docker schafft eine Laufzeitgrenze; Mount, Endpoint und Rechte müssen trotzdem geprüft werden.

Schnelle Antwort: den passenden Docker-Weg wählen

Docker Sandbox passt zu einem verwalteten isolierten Workspace. Trotzdem musst du Mounts, den empfangenden Provider und die Sandbox-Rechte kennen.

Docker Model Runner stellt den Modelldienst bereit, während OpenCode die Coding-Oberfläche bleibt. Ein erreichbares Modell richtet Mounts und Rechte nicht ein.

Ein eigenes Image fixiert Node, Pakete oder Zertifikate, bringt aber Verantwortung für Dockerfile, Benutzer, Updates und Secrets.

Docker-Wege und ihre Grenzen

`opencode docker image`, `opencode docker compose` und `docker opencode` sind Varianten derselben Entscheidung und keine eigenen Seiten.

Für ein Repository genügt das kleinste Image mit CLI und Provider-Zugriff. Zusätzliche Dienste und ein Home-Mount erschweren den ersten Test.

Wenn Datenschutz der Grund ist, dokumentiere Modelldienst und Coding-Agent getrennt. Ein Endpoint ersetzt keine Mount- und Rechteprüfung.

WegGeeignet fürWichtige Grenze
Docker SandboxSchneller isolierter WorkspaceAuthentifizierung, Mount und Rechte
Docker Model RunnerLokale oder private InferenzModell, Endpoint, Port, Kontext
Eigenes ImageFixierte Tools und TeamDockerfile, Benutzer, Updates, Secrets
Docker ComposeMehrere ServicesNamen, Netzwerk, Volumes, Cleanup

Vor OpenCode im Container prüfen

Prüfe die Imagequelle, bevor Quellcode gemountet wird. Bevorzuge offizielle Dokumentation oder ein nachvollziehbares Dockerfile.

Mounte nur das Projekt und vermeide Home, SSH-Schlüssel, Cloud-Credentials und den Docker-Socket des Hosts.

Injecte Credentials zur Laufzeit, niemals in Dockerfile, Layern, versioniertem Compose oder Shell-History; prüfe `.dockerignore`.

Starte mit kleinem Repository, Lesetest, kleiner Dokumentationsänderung, Git-Diff und ungefährlichem Test.

7 Checks für ein zuverlässiges Setup

Die Checks machen den Start nachvollziehbar: fehlendes Modell weist auf den Endpoint, falsche Dateien auf den Mount und unerlaubte Writes auf Rechte hin.

Nutze dieselbe Reihenfolge auf Laptop und CI und notiere Image, Provider, Pfad und Befehl.

Eine Antwort beweist keine Sicherheit, wenn Image oder Volume zu breit sind.

  1. Image prüfen Name, Tag/Digest, Basis, Updatequelle und Benutzer notieren.
  2. Workspace begrenzen Nur Projekt mounten und separaten Branch oder Worktree nutzen.
  3. Provider verbinden Einen Endpoint prüfen und den Schlüssel außerhalb halten.
  4. Modell bestätigen Antwort, ID, Kontext und Port im Container prüfen.
  5. Lesetest starten Vor Änderungen eine Datei zusammenfassen lassen.
  6. Kleinen Diff prüfen Dokumentation oder Fixture ändern und fremde Dateien ablehnen.
  7. Cleanup dokumentieren Container stoppen, temporäre Volumes entfernen und Fix notieren.
Prüffluss für OpenCode in Docker mit Image, Secrets, Mount, Modell, Lesetest und Git-Diff
Prüfe Image, Secrets, Mount, Endpoint, Lesetest und anschließend einen kleinen Diff.

Docker Model Runner und OpenAI-kompatible Endpoints

Docker Model Runner eignet sich für lokale oder private Inferenz. Aktiviere ein Coding-Modell, prüfe es im selben Netzwerk und verwende genaue URL und ID.

Teste Endpoint und OpenCode getrennt und prüfe anschließend Kontext, Rechte und Session.

Begrenze Schnittstelle und Ports und dokumentiere Host-Gateway, Compose-Service oder Remote-Server.

# Illustrative shape only; confirm current image, endpoint, and model fields in official docs
docker run --rm -it --mount type=bind,src="$PWD",dst=/workspace --workdir /workspace -e OPENAI_API_KEY -e OPENAI_BASE_URL opencode-image:reviewed opencode

Berechtigungen, Secrets, Ports und Git

Die Containergrenze ist nur ein Teil des Rechte-Modells. OpenCode, Docker, Linux-Benutzer, Provider und Git müssen zusammenpassen.

Dokumentiere Minimalbefehl, Cleanup, Volumes, private Ports und reproduzierbares Image.

Der erste Write bleibt klein; bei Secrets, Bundles oder Dateien außerhalb des Projekts stoppen.

PrüfungSicherer StandardWarnsignal
SecretsLaufzeit-Injection und RotationSchlüssel in Dockerfile, Layern oder Compose
DateienEin Projekt, non-root, WorktreeHome, SSH oder Docker-Socket
NetzwerkNur Endpoint und nötige PortsAlle Ports oder öffentlicher Endpoint
GitStatus und Diff nach jedem WriteWrite außerhalb des Worktrees
ImageGeprüfter Digest oder Tag`latest` ohne Verantwortlichen

Fehlersuche: die fehlerhafte Schicht isolieren

Wenn `opencode` fehlt, prüfe Image, PATH, Entrypoint und Benutzer vor Provider-Änderungen.

Bei leerer Modellliste teste den Endpoint im Container und prüfe URL, DNS, Port, Credentials und ID; `localhost` kann den Container selbst meinen.

Bei guten Antworten und schlechten Edits Mount und Umfang verkleinern, Rechte prüfen, Lesetest wiederholen und Diff notieren.

Wenn ein erster Test funktioniert, aber der nächste Lauf andere Dateien sieht, vergleiche zuerst den Mount und das Arbeitsverzeichnis. Ein sauberer Status vor dem Start, ein kurzer Read-only-Task und ein gespeicherter Diff zeigen, ob das Problem aus dem Prompt, aus den Rechten oder aus dem Container kommt.

Für reproduzierbare Teamläufe gehören Image-Tag oder Digest, Provider, Modell-ID, Port, Branch und Cleanup-Befehl in dasselbe Protokoll. So kann eine Kollegin den Lauf ohne geratenen Hostnamen wiederholen. Ändert sich das Image, prüfe erneut Benutzer, PATH, Zertifikate und die erlaubten Volumes, bevor du Schreibrechte erweiterst.

Bei einem Timeout trenne Netzwerk und Modellprüfung: teste zuerst eine kurze Anfrage am Endpoint und danach dieselbe Anfrage über OpenCode. Bei unerwarteten Änderungen stoppe den Container, sichere den Diff und starte einen neuen Lauf mit kleinerem Mount. Diese Reihenfolge spart Zeit und verhindert, dass ein zweiter Fehler den ersten verdeckt.

SymptomWahrscheinliche SchichtErster Check
Befehl fehltImage oder PATHVersion im gleichen Image und Verzeichnis
Provider ohne ModellEndpoint oder IDIm Container testen und ID vergleichen
Dateien fehlenMount oder WorkdirWorkdir und Projekt anzeigen
TimeoutNetz, Port, Quota oder ModellKurze Anfrage und Netzwerk prüfen
Unerwartete DateienMount oder RechteStoppen, Git prüfen, Mount verkleinern

OpenCode mit Docker FAQ

Kann OpenCode in Docker laufen?

Ja. Image, Mount, Credentials, Netzwerk und Rechte müssen trotzdem geprüft werden.

Docker Sandbox oder eigenes Image?

Sandbox für verwaltete Isolation; eigenes Image für feste Abhängigkeiten, wenn du es pflegen kannst.

Wie verbinde ich Model Runner?

Dienst prüfen und die genaue OpenAI-kompatible URL und Modell-ID im selben Netzwerk verwenden.

Was soll ich mounten?

Nur Projekt oder Worktree; Home, SSH, Cloud-Credentials und Docker-Socket vermeiden.

Brauche ich Compose?

Nein. Compose passt zu mehreren Services und einem privaten Netzwerk.

Warum sieht der Container kein Modell?

Base URL, localhost, ID, Port, Schlüssel und Service-Name prüfen.

Offizielle Quellen zur Prüfung

Integrationsdetails ändern sich. Prüfe Image, Authentifizierung, Endpoints und Rechte in den offiziellen Dokumenten, bevor du einen Befehl in einem sensiblen Repository nutzt.