Share feedback
Answers are generated based on the documentation.

将 OpenCode 与 Docker Model Runner 配合使用

通过兼容 OpenAI 的端点将 OpenCode 连接到 Docker Model Runner, 选择编码模型,并使用更大的上下文窗口打包 `gpt-oss`。

本指南介绍如何将 OpenCode 连接到 Docker Model Runner,以便 OpenCode 能够使用本地模型完成编码任务。您将配置一个 opencode.json 文件,验证 API 端点,并针对本地 Docker 环境中提供的模型运行 OpenCode。

致谢

Docker 感谢 Pradumna Saraf 对本指南的贡献。

OpenCode 沙箱指南 不同,本指南侧重于将 OpenCode 用作由 Docker Model Runner 支撑的本地编码工具,而不是在容器化沙箱中运行 OpenCode。

在本指南中,您将学习如何:

  • 为 OpenCode 拉取编码模型
  • 配置 OpenCode 以使用 Docker Model Runner
  • 验证本地 API 端点并启动 OpenCode
  • 在需要时,使用更大的上下文窗口打包 gpt-oss

前提条件

在开始之前,请确保您已具备:

如果您使用 Docker Desktop,请在 Settings > AI 中开启 TCP 访问,或运行:

$ docker desktop enable model-runner --tcp 12434

第 1 步:拉取编码模型

在配置 OpenCode 之前,先拉取一个或多个模型:

$ docker model pull ai/qwen3-coder
$ docker model pull ai/devstral-small-2

这些模型非常适合编码工作流,因为它们支持较大的上下文窗口。

第 2 步:创建 OpenCode 配置

OpenCode 会从以下任一位置读取配置:

  • ~/.config/opencode/opencode.json(用于全局配置)
  • 项目根目录中的 opencode.json(用于项目级配置)

项目级配置会覆盖全局文件。

添加一个指向 Docker Model Runner 的 provider:

opencode.json
{
  "$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"
        }
      }
    }
  }
}

此配置将 Docker Model Runner 添加为 OpenCode 的 provider,并暴露两个本地模型。

Note

如果您的设置期望使用旧的兼容 OpenAI 的路径,请改用 http://localhost:12434/engines/v1

第 3 步:验证端点

在打开 OpenCode 之前,检查 Docker Model Runner 是否可访问:

$ curl http://localhost:12434/v1/models

如果您使用的是旧路径,请运行:

$ curl http://localhost:12434/engines/v1/models

响应中应列出通过 Docker Model Runner 可用的模型。

第 4 步:启动 OpenCode

从您的项目目录运行:

$ opencode

若要从 TUI 切换模型,请运行:

/models

然后从 dmr provider 中选择模型。

第 5 步:使用更大的上下文窗口打包 gpt-oss

此步骤为可选。如果您需要更大的上下文窗口来处理仓库级别的任务,可以使用它。

gpt-oss 默认的上下文窗口比面向编码的模型要小。如果您希望将其用于仓库级别的任务,请打包一个更大的变体:

$ docker model pull ai/gpt-oss
$ docker model package --from ai/gpt-oss --context-size 128000 gpt-oss:128k

然后将其添加到您的 OpenCode 配置中:

opencode.json
{
  "$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"
        }
      }
    }
  }
}

故障排查

如果 OpenCode 无法连接,请检查 Docker Model Runner 的状态:

$ docker model status

如果 OpenCode 没有显示您的模型,请列出本地模型:

$ docker model ls

如果模型缺失,请先拉取它,并确认 opencode.json 中的模型名称与您想要使用的本地模型一致。

了解更多