Guia de Docker

OpenCode no Docker: execute o contêiner e valide com segurança

Resumo: use Docker Sandbox para um workspace isolado gerenciado, Docker Model Runner para um endpoint local compatível com OpenAI e uma imagem própria apenas quando precisar de pacotes ou regras específicas. Mantenha chaves fora da imagem, monte só o projeto, valide o modelo e comece com leitura.

OpenCode no Docker ajuda a obter runtime reproduzível, limite claro de arquivos ou um caminho para modelo local. O contêiner não é seguro por si só: imagem, volumes, credenciais, rede, permissões e evidências antes da escrita precisam ser revisados.

Diagrama editorial do OpenCode ligado ao Docker Sandbox, Docker Model Runner e contêiner controlado
Docker cria um limite de execução, mas volume, endpoint e permissões ainda precisam ser conferidos.

Resposta rápida: escolha o caminho Docker

Docker Sandbox serve para um workspace isolado gerenciado, mas você precisa conhecer os arquivos montados, o provedor que recebe o código e as permissões.

Docker Model Runner fornece o serviço de modelo e o OpenCode continua sendo a interface. Um endpoint funcionando não configura projeto e permissões.

Uma imagem própria fixa Node e pacotes, mas cria responsabilidade pelo Dockerfile, usuário, atualizações e segredos.

Caminhos de configuração e compromissos

`opencode docker image`, `opencode docker compose` e `docker opencode` são variações da mesma decisão. Uma tabela é suficiente.

Comece com a imagem mínima que execute o CLI e alcance o provedor. Evite serviços extras e o volume do home no primeiro teste.

Se a razão é privacidade, documente o serviço de inferência separado do agente. O endpoint não substitui a revisão do volume.

CaminhoBom paraLimite a validar
Docker SandboxWorkspace isolado rápidoAutenticação, volume e permissões
Docker Model RunnerInferência local ou privadaModelo, endpoint, porta e contexto
Imagem própriaFerramentas fixas e equipeDockerfile, usuário, updates e segredos
Docker ComposeVários serviçosNomes, rede, volumes e limpeza

Antes de executar OpenCode no contêiner

Verifique a origem da imagem antes de montar código. Prefira documentação oficial ou Dockerfile, base e atualização auditáveis.

Monte apenas o projeto; evite home, chaves SSH, credenciais cloud e socket Docker do host.

Injete credenciais em runtime, nunca em Dockerfile, camadas, Compose versionado ou histórico do shell; confira `.dockerignore`.

Use repositório pequeno, leitura, mudança segura, diff Git e teste sem efeito em produção.

7 verificações para um setup confiável

As verificações transformam o início em evidência: modelo ausente aponta para endpoint, arquivos errados para volume e escrita ampla para permissões.

Use a mesma ordem no notebook e na CI e registre imagem, provedor, caminho e comando.

Uma resposta não prova segurança se imagem ou volume forem amplos demais.

  1. Inspecione a imagem Registre nome, tag/digest, base, atualização e usuário.
  2. Crie workspace estreito Monte só o projeto e use branch ou worktree separado.
  3. Conecte um provedor Valide endpoint e mantenha a chave fora do repositório.
  4. Confirme o modelo Cheque resposta, ID, contexto e porta no contêiner.
  5. Faça leitura Peça um resumo antes de permitir mudanças.
  6. Revise um diff Altere documentação ou fixture e rejeite arquivos estranhos.
  7. Registre limpeza Pare o contêiner, remova volumes temporários e anote a correção.
Fluxo de validação do OpenCode no Docker com imagem, segredos, volume, modelo, leitura e diff Git
Valide imagem, segredos, volume, endpoint, leitura e depois um diff pequeno.

Docker Model Runner e endpoints compatíveis com OpenAI

Docker Model Runner é útil para inferência local ou privada. Ative o modelo, valide-o na mesma rede e use URL e ID exatos.

Teste endpoint e OpenCode separadamente e depois confirme contexto, permissões e sessão.

Limite interface e portas e registre gateway, serviço Compose ou servidor 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

Permissões, segredos, portas e Git

A fronteira do contêiner é só parte das permissões. OpenCode, Docker, usuário Linux, provedor e Git precisam concordar.

Documente comando mínimo, limpeza, volumes, portas privadas e reprodução da imagem.

A primeira escrita deve ser pequena; pare diante de segredos, bundles ou arquivos externos.

VerificaçãoPadrão seguroSinal de risco
SegredosInjetar em runtime e rotacionarChave em Dockerfile, camada ou Compose
ArquivosUm projeto, non-root e worktreeHome, SSH ou socket Docker
RedeSó endpoint e portas necessáriasTodas as portas ou endpoint público
GitRevisar status e diffEscrita fora do worktree
ImagemDigest ou tag revisada`latest` sem responsável

Solução de problemas: isole a camada que falha

Se `opencode` não existe, confira imagem, PATH, entrypoint e usuário antes de mexer no provedor.

Se o modelo não aparece, teste endpoint dentro do contêiner e confira URL, DNS, porta, credencial e ID; `localhost` pode apontar para o contêiner.

Se a edição falha, reduza volume e escopo, revise permissões e repita leitura.

Quando um teste funciona, mas a próxima execução enxerga arquivos diferentes, compare primeiro o volume montado e o diretório de trabalho. Um status limpo antes do início, uma tarefa somente leitura e um diff salvo mostram se o problema veio do prompt, da permissão ou do contêiner.

Para repetir o fluxo em equipe, registre no mesmo lugar a tag ou o digest da imagem, o provedor, o ID do modelo, a porta, o branch e o comando de limpeza. Assim outra pessoa consegue reproduzir o teste sem adivinhar o nome do host. Se a imagem mudar, confira usuário, PATH, certificados e volumes permitidos antes de ampliar a escrita.

SintomaCamada provávelPrimeiro teste
Comando não existeImagem ou PATHVersão na mesma imagem e diretório
Provedor sem modeloEndpoint ou IDTeste no contêiner e compare ID
Arquivos ausentesVolume ou diretórioMostre workdir e projeto
TimeoutRede, porta, cota ou modeloPedido curto
Arquivos inesperadosVolume ou permissãoPare, confira Git e reduza volume

FAQ do OpenCode no Docker

O OpenCode pode rodar no Docker?

Sim, mas imagem, volume, credenciais, rede e permissões precisam de revisão.

Docker Sandbox ou imagem própria?

Sandbox para isolamento gerenciado; imagem própria para dependências fixas que você consiga manter.

Como conecto Model Runner?

Valide o serviço e use URL compatível com OpenAI e ID exato na mesma rede.

O que montar?

Somente projeto ou worktree; evite home, chaves, credenciais e socket Docker.

Preciso de Compose?

Não. Use-o para vários serviços e rede privada reproduzível.

Por que o modelo não aparece?

Confira base URL, localhost, ID, porta, chave e nome do serviço.

Fontes oficiais para conferir

Detalhes de integração mudam. Confira imagens, autenticação, endpoints e permissões na documentação oficial antes de usar comandos em repositórios sensíveis.