Guide Docker

OpenCode avec Docker : exécuter et vérifier un conteneur

En bref : choisissez Docker Sandbox pour un espace isolé géré, Docker Model Runner pour un endpoint local compatible OpenAI et une image personnalisée seulement si le projet exige des paquets ou des règles réseau précises. Gardez les clés hors de l'image, montez le seul projet utile, vérifiez le modèle puis commencez en lecture seule.

OpenCode avec Docker aide à obtenir un runtime reproductible, une limite de fichiers nette ou un chemin vers un modèle local. Le conteneur ne suffit pas à sécuriser le travail : il faut contrôler l'image, les montages, les identifiants, le réseau, les permissions et les preuves avant écriture.

Schéma éditorial d'OpenCode relié à Docker Sandbox, Docker Model Runner et un conteneur de projet contrôlé
Docker crée une limite d'exécution, mais le montage, l'endpoint et les permissions restent à vérifier.

Réponse rapide : choisir le chemin Docker

Docker Sandbox convient à une première zone de travail isolée, mais il faut connaître les fichiers montés, le fournisseur qui reçoit le code et les permissions du sandbox.

Docker Model Runner fournit le service de modèle, tandis qu'OpenCode reste l'interface. Un endpoint actif ne règle pas le montage ni les permissions.

Une image personnalisée fixe Node et les paquets, mais demande la maintenance du Dockerfile, de l'utilisateur, des mises à jour et des secrets.

Chemins de configuration et compromis

`opencode docker image`, `opencode docker compose` et `docker opencode` sont des variantes d'une même décision. Un tableau suffit, sans créer plusieurs pages.

Pour un dépôt simple, partez de l'image minimale qui exécute le CLI et atteint le fournisseur. N'ajoutez pas de services ni le dossier personnel avant le premier test.

Si Docker sert la confidentialité du modèle, séparez le service d'inférence de l'agent de code. L'endpoint ne remplace pas la revue du montage.

CheminBon usageLimite à vérifier
Docker SandboxEspace isolé rapideAuthentification, montage, permissions
Docker Model RunnerInférence locale ou privéeModèle, endpoint, port, contexte
Image personnaliséeOutils figés et équipeDockerfile, utilisateur, mises à jour, secrets
Docker ComposePlusieurs servicesNoms, réseau, volumes, nettoyage

Avant d'exécuter OpenCode dans un conteneur

Examinez l'origine de l'image avant de monter le code. Préférez une documentation officielle ou un Dockerfile vérifiable.

Montez seulement le projet; évitez home, clés SSH, identifiants cloud et socket Docker de l'hôte.

Injectez les identifiants au démarrage, jamais dans Dockerfile, couches, Compose versionné ou historique shell; contrôlez `.dockerignore`.

Commencez par un petit dépôt, une lecture, un petit changement, un diff Git et un test sans effet production.

7 contrôles pour une configuration fiable

Ces contrôles transforment le lancement en preuve : modèle absent vers endpoint, fichiers absents vers montage, écriture excessive vers permissions.

Gardez le même ordre sur ordinateur et en CI et notez image, fournisseur, chemin et commande.

Une réponse réussie ne prouve pas la sécurité si l'image ou le volume est trop large.

  1. Inspecter l'image Notez nom, tag ou digest, base, mise à jour et utilisateur.
  2. Réduire l'espace Montez le projet et utilisez branche ou worktree séparé.
  3. Connecter un fournisseur Validez un endpoint et gardez la clé hors dépôt.
  4. Confirmer le modèle Vérifiez réponse, ID, contexte et port.
  5. Tâche en lecture Demandez un résumé avant les changements.
  6. Revoir un petit diff Modifiez documentation ou fixture et refusez les fichiers étrangers.
  7. Nettoyer Arrêtez le conteneur, supprimez les volumes temporaires et notez le correctif.
Flux de vérification OpenCode dans Docker pour image, secrets, montage, modèle, lecture et diff Git
Vérifiez l'image, les secrets, le montage, l'endpoint, une requête en lecture puis un petit diff.

Docker Model Runner et endpoints compatibles OpenAI

Docker Model Runner convient à l'inférence locale ou privée. Activez un modèle, vérifiez le service depuis le même réseau et utilisez l'URL et l'ID exacts.

Testez séparément l'endpoint et la tâche OpenCode, puis contrôlez contexte, permissions et session.

Limitez interface et ports et indiquez passerelle hôte, service Compose ou serveur distant.

# 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

Permissions, secrets, ports et Git

La frontière du conteneur n'est qu'une partie des permissions. OpenCode, Docker, l'utilisateur Linux, le fournisseur et Git doivent rester cohérents.

Documentez commande minimale, nettoyage, volumes, ports privés et reproduction de l'image.

La première écriture doit rester petite; arrêtez-vous en cas de secrets ou de fichiers hors dépôt.

ContrôleChoix plus sûrSignal d'alerte
SecretsInjection runtime et rotationClé dans Dockerfile, couches ou Compose
FichiersUn projet, non-root, worktreeHome, SSH ou socket Docker
RéseauEndpoint et ports nécessairesTous les ports ou endpoint public
GitStatus et diff après écritureÉcriture hors worktree
ImageDigest ou tag revu`latest` sans responsable

Dépannage : isoler la couche en échec

Si `opencode` manque, vérifiez image, PATH, entrypoint et utilisateur avant de modifier le fournisseur.

Si le modèle manque, testez l'endpoint depuis le conteneur et vérifiez URL, DNS, port, identifiants et ID; `localhost` peut désigner le conteneur.

Si l'édition est mauvaise, réduisez montage et portée, refaites une tâche de lecture et notez digest, modèle et diff.

SymptômeCouche probablePremier contrôle
Commande absenteImage ou PATHVersion dans la même image et le même dossier
Fournisseur sans modèleEndpoint ou IDTest depuis le conteneur
Fichiers absentsMontage ou dossierAfficher workdir et projet
TimeoutRéseau, port, quota ou modèlePetite requête
Fichiers inattendusMontage ou permissionsArrêter, vérifier Git, réduire le montage

FAQ OpenCode avec Docker

OpenCode peut-il fonctionner dans Docker ?

Oui, mais image, montage, identifiants, réseau et permissions doivent être contrôlés.

Docker Sandbox ou image personnalisée ?

Sandbox pour isolation gérée; image personnalisée pour dépendances figées si vous pouvez la maintenir.

Comment connecter Model Runner ?

Validez le service puis utilisez l'URL compatible OpenAI et l'ID exact dans le même réseau.

Que monter ?

Le projet ou worktree uniquement; évitez home, clés, identifiants et socket Docker.

Compose est-il obligatoire ?

Non, sauf pour plusieurs services et un réseau privé reproductible.

Pourquoi le modèle n'apparaît-il pas ?

Vérifiez URL, localhost, ID, port, clé et nom du service.

Sources officielles à vérifier

Les détails évoluent. Vérifiez images, authentification, endpoints et permissions dans les documents officiels avant toute commande sensible.