Usa OpenCode con Docker Model Runner
Esta guía muestra cómo conectar OpenCode a Docker Model Runner para que OpenCode pueda usar modelos locales en tareas de programación. Configurarás un archivo opencode.json, verificarás el endpoint de la API y ejecutarás OpenCode con modelos servidos desde tu entorno local de Docker.
Agradecimiento
A Docker le gustaría agradecer a Pradumna Saraf por su contribución a esta guía.
A diferencia de la guía del sandbox de OpenCode, esta guía se centra en el uso de OpenCode como una herramienta de programación local respaldada por Docker Model Runner, en lugar de ejecutar OpenCode en un sandbox contenedorizado.
En esta guía, aprenderás a:
- Descargar (pull) modelos de programación para OpenCode
- Configurar OpenCode para usar Docker Model Runner
- Verificar el endpoint local de la API e iniciar OpenCode
- Empaquetar
gpt-osscon una ventana de contexto más grande cuando lo necesites
Requisitos previos
Antes de comenzar, asegúrate de tener:
- Docker Desktop o Docker Engine instalado
- Docker Model Runner habilitado
- OpenCode instalado
Si utilizas Docker Desktop, activa el acceso TCP en Settings > AI, o ejecuta:
$ docker desktop enable model-runner --tcp 12434
Paso 1: Descargar un modelo de programación
Descarga uno o más modelos antes de configurar OpenCode:
$ docker model pull ai/qwen3-coder
$ docker model pull ai/devstral-small-2
Estos modelos son una buena opción para los flujos de trabajo de programación porque admiten ventanas de contexto grandes.
Paso 2: Crear una configuración de OpenCode
OpenCode lee la configuración de cualquiera de estas ubicaciones:
~/.config/opencode/opencode.jsonpara una configuración globalopencode.jsonen la raíz de tu proyecto para una configuración específica del proyecto
La configuración a nivel de proyecto anula el archivo global.
Agrega un proveedor que apunte a Docker Model Runner:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"dmr": {
"npm": "@ai-sdk/openai-compatible",
"name": "Docker Model Runner",
"options": {
"baseURL": "http://localhost:12434/v1"
},
"models": {
"qwen3-coder": {
"name": "ai/qwen3-coder"
},
"devstral-small-2": {
"name": "ai/devstral-small-2"
}
}
}
}
}Esta configuración agrega Docker Model Runner como un proveedor de OpenCode y expone dos modelos locales.
NoteSi tu configuración requiere la ruta más antigua compatible con OpenAI, utiliza
http://localhost:12434/engines/v1en su lugar.
Paso 3: Verificar el endpoint
Comprueba que Docker Model Runner sea accesible antes de abrir OpenCode:
$ curl http://localhost:12434/v1/models
Si usas la ruta antigua, ejecuta:
$ curl http://localhost:12434/engines/v1/models
La respuesta debería listar los modelos disponibles a través de Docker Model Runner.
Paso 4: Iniciar OpenCode
Desde el directorio de tu proyecto, ejecuta:
$ opencode
Para cambiar de modelo desde la interfaz TUI, ejecuta:
/modelsLuego selecciona el modelo del proveedor dmr.
Paso 5: Empaquetar gpt-oss con una ventana de contexto más grande
Este paso es opcional. Utilízalo si necesitas una ventana de contexto más grande para tareas a escala de repositorio.
gpt-oss utiliza por defecto una ventana de contexto más pequeña que los modelos enfocados en programación. Si deseas usarlo para tareas a escala de repositorio, empaqueta una variante más grande:
$ docker model pull ai/gpt-oss
$ docker model package --from ai/gpt-oss --context-size 128000 gpt-oss:128k
Luego agrégalo a tu configuración de OpenCode:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"dmr": {
"npm": "@ai-sdk/openai-compatible",
"name": "Docker Model Runner",
"options": {
"baseURL": "http://localhost:12434/v1"
},
"models": {
"gpt-oss:128k": {
"name": "gpt-oss:128k"
}
}
}
}
}Resolución de problemas
Si OpenCode no puede conectarse, verifica el estado de Docker Model Runner:
$ docker model status
Si OpenCode no muestra tu modelo, lista los modelos locales:
$ docker model ls
Si falta el modelo, descárgalo (pull) primero y confirma que el nombre del modelo en opencode.json coincida con el modelo local que deseas usar.