Guía de Docker

OpenCode en Docker: ejecuta un contenedor y verifícalo

Respuesta corta: usa Docker Sandbox para un espacio aislado gestionado, Docker Model Runner para un endpoint local compatible con OpenAI y una imagen propia solo cuando necesites paquetes o reglas concretos. Mantén las claves fuera de la imagen, monta únicamente el proyecto previsto, verifica el modelo y empieza con una tarea de solo lectura.

OpenCode en Docker sirve para tener un runtime reproducible, un límite claro de archivos o una ruta de modelo local. El contenedor no es automáticamente seguro: la seguridad depende de la imagen, los montajes, las credenciales, la red, los permisos y la evidencia reunida antes de escribir.

Diagrama de OpenCode conectado a Docker Sandbox, Docker Model Runner y un contenedor de proyecto controlado
Docker aporta un límite de ejecución, pero el montaje, el endpoint y los permisos se deben revisar.

Conclusión rápida: elige la ruta de Docker

Docker Sandbox encaja cuando quieres un espacio aislado con una ruta guiada. Aun así, debes saber qué archivos se montan, qué proveedor recibe el código y qué permisos concede el sandbox.

Docker Model Runner es otra capa: ofrece el servicio de modelo y OpenCode sigue siendo la interfaz de programación. Que el modelo responda no configura el directorio ni los permisos.

Una imagen propia permite fijar Node, paquetes o certificados, pero también exige mantener el Dockerfile, el usuario, las actualizaciones y las credenciales.

Rutas de configuración y compromisos

`opencode docker image`, `opencode docker compose` y `docker opencode` son variantes de una misma decisión, no páginas independientes. Usa una tabla para compararlas.

Empieza con la imagen mínima que ejecute el CLI y alcance el proveedor; no añadas servicios ni montes todo el directorio personal antes de probar.

Si buscas privacidad del modelo, separa el servicio de inferencia del agente. El endpoint no sustituye la revisión del montaje.

RutaBuen usoLímite principal
Docker SandboxEspacio aislado rápidoAutenticación, montaje y permisos
Docker Model RunnerInferencia local o privadaModelo, endpoint, puerto y contexto
Imagen propiaHerramientas fijadas y equipoDockerfile, usuario, actualizaciones y secretos
Docker ComposeVarios serviciosNombres, red, volúmenes y limpieza

Antes de ejecutar OpenCode en un contenedor

Revisa la procedencia de la imagen antes de montar código. Prefiere documentación oficial o un Dockerfile, base y actualización que se puedan inspeccionar.

Monta solo el proyecto y evita home, claves SSH, credenciales cloud y el socket Docker del host.

Inyecta las credenciales al ejecutar, nunca en Dockerfile, capas, Compose versionado o historial del shell; revisa `.dockerignore`.

Haz la primera prueba en un repositorio pequeño con lectura, un cambio seguro, diff de Git y un test sin efectos de producción.

7 comprobaciones para una configuración fiable

Las comprobaciones convierten el arranque en evidencia: modelo ausente apunta al endpoint, archivos erróneos al montaje y escritura excesiva a permisos.

Usa el mismo orden en portátil y CI y registra imagen, proveedor, ruta y comando.

Una respuesta correcta no demuestra seguridad; la imagen puede ser mutable y el volumen demasiado amplio.

  1. Inspecciona la imagen Anota nombre, tag o digest, base, actualización y usuario.
  2. Crea un workspace estrecho Monta solo el proyecto y usa rama o worktree separado.
  3. Conecta un proveedor Valida un endpoint y deja la clave fuera de imagen y repositorio.
  4. Confirma el modelo Comprueba respuesta, ID, contexto y puerto dentro del contenedor.
  5. Haz una tarea de lectura Pide un resumen antes de permitir cambios.
  6. Revisa un diff pequeño Cambia documentación o fixture y rechaza archivos ajenos.
  7. Registra la limpieza Detén el contenedor, elimina volúmenes temporales y anota el arreglo.
Flujo de verificación de OpenCode en Docker para imagen, secretos, montaje, modelo, lectura y diff de Git
Verifica en orden la imagen, los secretos, el montaje, el endpoint, la lectura y un diff pequeño.

Docker Model Runner y endpoints compatibles con OpenAI

Docker Model Runner es útil para inferencia local o privada. Activa un modelo, comprueba el servicio desde la misma red y usa URL e ID exactos.

Prueba por separado el endpoint y OpenCode: la segunda prueba confirma contexto, permisos y sesión.

Limita la interfaz y los puertos y documenta si usas gateway del host, nombre Compose o 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

Permisos, secretos, puertos y Git

El límite del contenedor es solo una parte del modelo de permisos. OpenCode, Docker, el usuario Linux, el proveedor y Git deben coincidir.

Documenta el comando mínimo, la limpieza, los volúmenes permitidos, los puertos privados y cómo reproducir la imagen.

El primer cambio debe ser pequeño. Detente si aparecen secretos, bundles o archivos fuera del proyecto.

RevisiónPredeterminado más seguroSeñal de riesgo
SecretosInyectar al ejecutar y rotarClave en Dockerfile, capas o Compose
ArchivosUn proyecto, usuario no root y worktreeHome, SSH o socket Docker montados
RedSolo endpoint y puertos necesariosTodos los puertos o endpoint público
GitRevisar status y diffEscrituras fuera del worktree
ImagenDigest o tag revisado`latest` sin responsable

Diagnóstico: separa la capa que falla

Si falta `opencode`, comprueba imagen, PATH, entrypoint y usuario antes de cambiar el proveedor.

Si no aparece el modelo, prueba el endpoint dentro del contenedor y revisa URL, DNS, puerto, credenciales e ID; `localhost` puede apuntar al contenedor.

Si la respuesta es buena pero la edición no, reduce el montaje y el alcance, revisa permisos y repite una tarea de lectura.

SíntomaCapa probablePrimera comprobación
No aparece el comandoImagen o PATHEjecuta la versión en la misma imagen y carpeta
Proveedor sin modeloEndpoint o IDPrueba desde el contenedor y compara el ID
Faltan archivosMontaje o carpetaMuestra workdir y proyecto montado
TimeoutRed, puerto, cuota o modeloPrueba corta y revisa la red
Cambios inesperadosMontaje o permisosDetén, revisa Git y reduce el montaje

Preguntas frecuentes sobre OpenCode en Docker

¿Puede OpenCode ejecutarse en Docker?

Sí. Revisa imagen, montaje, credenciales, red y permisos.

¿Docker Sandbox o imagen propia?

Sandbox para aislamiento gestionado; imagen propia para dependencias fijadas si puedes mantenerla.

¿Cómo conecto Docker Model Runner?

Valida el servicio y usa la URL compatible con OpenAI y el ID exacto desde la misma red.

¿Qué debo montar?

Solo el proyecto o worktree; evita home, claves SSH, credenciales y socket Docker.

¿Necesito Compose?

No. Un contenedor es más fácil de verificar; Compose sirve para varios servicios.

¿Por qué no aparece el modelo?

Revisa base URL, localhost, ID, puerto, clave y nombre de servicio.

Fuentes oficiales para verificar

Los detalles de integración cambian. Confirma imágenes, autenticación, endpoints y permisos en la documentación oficial antes de usar comandos en un repositorio sensible.