Guida Docker

OpenCode con Docker: eseguire e verificare un container

In breve: usa Docker Sandbox per un workspace isolato gestito, Docker Model Runner per un endpoint locale compatibile con OpenAI e un'immagine personalizzata solo quando servono pacchetti o regole precise. Tieni le chiavi fuori dall'immagine, monta solo il progetto, verifica il modello e parti con una richiesta in sola lettura.

OpenCode con Docker offre un runtime riproducibile, un limite chiaro dei file o un percorso verso un modello locale. Il container non è sicuro automaticamente: immagine, mount, credenziali, rete, permessi e prove prima della scrittura vanno controllati insieme.

Diagramma di OpenCode collegato a Docker Sandbox, Docker Model Runner e un container di progetto controllato
Docker crea un limite di esecuzione, ma mount, endpoint e permessi richiedono comunque controlli.

Risposta rapida: scegli il percorso Docker

Docker Sandbox è adatto a un workspace isolato gestito, ma devi conoscere file montati, provider che riceve il codice e permessi del sandbox.

Docker Model Runner offre il servizio del modello e OpenCode resta l'interfaccia. Un endpoint attivo non configura progetto e permessi.

Un'immagine personalizzata fissa Node e pacchetti, ma richiede manutenzione di Dockerfile, utente, aggiornamenti e secret.

Percorsi di configurazione e compromessi

`opencode docker image`, `opencode docker compose` e `docker opencode` sono varianti della stessa scelta, non pagine separate.

Parti dall'immagine minima che esegue CLI e raggiunge il provider; evita servizi extra e mount della home nel primo test.

Se il motivo è la privacy del modello, separa il servizio di inferenza dall'agente. L'endpoint non sostituisce la revisione del mount.

PercorsoAdatto aLimite da verificare
Docker SandboxWorkspace isolato rapidoAutenticazione, mount, permessi
Docker Model RunnerInferenza locale o privataModello, endpoint, porta, contesto
Immagine propriaTool fissi e teamDockerfile, utente, update, secret
Docker ComposePiù serviziNomi, rete, volumi, pulizia

Prima di eseguire OpenCode nel container

Controlla l'origine dell'immagine prima di montare codice. Preferisci documentazione ufficiale o Dockerfile, base e aggiornamenti verificabili.

Monta solo il progetto ed evita home, chiavi SSH, credenziali cloud e socket Docker dell'host.

Inietta i secret a runtime, mai in Dockerfile, layer, Compose versionato o cronologia shell; controlla `.dockerignore`.

Inizia con repository piccolo, lettura, modifica sicura, diff Git e test senza effetti in produzione.

7 controlli per un setup affidabile

I controlli trasformano l'avvio in evidenza: modello assente indica endpoint, file errati indicano mount, scrittura ampia indica permessi.

Usa lo stesso ordine su laptop e CI e registra immagine, provider, percorso e comando.

Una risposta non dimostra sicurezza se immagine o volume sono troppo ampi.

  1. Ispeziona l'immagine Annota nome, tag o digest, base, update e utente.
  2. Crea uno spazio ristretto Monta solo il progetto e usa branch o worktree separato.
  3. Collega un provider Valida endpoint e tieni la chiave fuori dal repository.
  4. Conferma il modello Controlla risposta, ID, contesto e porta nel container.
  5. Esegui lettura Chiedi un riepilogo prima delle modifiche.
  6. Rivedi un diff Modifica documentazione o fixture e rifiuta file estranei.
  7. Registra pulizia Ferma il container, rimuovi volumi temporanei e annota la correzione.
Flusso di verifica OpenCode in Docker per immagine, secret, mount, modello, lettura e diff Git
Controlla immagine, secret, mount, endpoint, lettura e poi un piccolo diff.

Docker Model Runner ed endpoint compatibili con OpenAI

Docker Model Runner è utile per inferenza locale o privata. Attiva un modello, verifica la rete e usa URL e ID esatti.

Prova separatamente endpoint e OpenCode, poi conferma contesto, permessi e sessione.

Limita interfaccia e porte e annota gateway host, nome Compose o server remoto.

# 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

Permessi, secret, porte e Git

Il limite del container è solo una parte dei permessi. OpenCode, Docker, utente Linux, provider e Git devono essere coerenti.

Documenta comando minimo, pulizia, volumi, porte private e riproducibilità dell'immagine.

La prima scrittura deve essere minima. Fermati se compaiono secret, bundle o file esterni.

ControlloDefault più sicuroSegnale di rischio
SecretIniezione a runtime e rotazioneChiave in Dockerfile, layer o Compose
FileUn progetto, non-root, worktreeHome, SSH o socket Docker
ReteSolo endpoint e porte necessarieTutte le porte o endpoint pubblico
GitStatus e diff dopo ogni writeWrite fuori dal worktree
ImmagineDigest o tag verificato`latest` senza responsabile

Troubleshooting: separa il livello che fallisce

Se manca `opencode`, controlla immagine, PATH, entrypoint e utente prima del provider.

Se il modello manca, prova l'endpoint nel container e verifica URL, DNS, porta, credenziali e ID; `localhost` può indicare il container.

Se la modifica è errata, riduci mount e ambito, verifica permessi, ripeti la lettura e annota digest, modello e diff.

Se una prova funziona ma il giro successivo vede file diversi, confronta prima il mount e la directory di lavoro. Uno status pulito all'avvio, una richiesta in sola lettura e un diff salvato aiutano a capire se il problema viene dal prompt, dai permessi o dal container.

Per rendere il flusso ripetibile in team, registra insieme tag o digest dell'immagine, provider, ID del modello, porta, branch e comando di pulizia. Un'altra persona può così ripetere il controllo senza indovinare il nome dell'host. Quando cambia l'immagine, verifica di nuovo utente, PATH, certificati e volumi consentiti prima di allargare la scrittura.

SintomoLivello probabilePrimo controllo
Comando assenteImmagine o PATHVersione nella stessa immagine e cartella
Provider senza modelloEndpoint o IDTest nel container e confronto ID
File assentiMount o workdirMostra workdir e progetto
TimeoutRete, porta, quota o modelloRichiesta breve
File inattesiMount o permessiFerma, controlla Git e riduci mount

FAQ OpenCode con Docker

OpenCode può funzionare in Docker?

Sì, ma immagine, mount, credenziali, rete e permessi vanno verificati.

Docker Sandbox o immagine propria?

Sandbox per isolamento gestito; immagine propria per dipendenze fisse se puoi mantenerla.

Come collego Model Runner?

Verifica il servizio e usa URL compatibile OpenAI e ID esatto nella stessa rete.

Cosa devo montare?

Solo progetto o worktree; evita home, chiavi, credenziali e socket Docker.

Serve Compose?

No. È utile per più servizi e rete privata.

Perché il modello non appare?

Controlla base URL, localhost, ID, porta, chiave e nome del servizio.

Fonti ufficiali da verificare

I dettagli cambiano. Controlla immagini, autenticazione, endpoint e permessi nella documentazione ufficiale prima dei comandi sensibili.