AI搭載のコーディングアシスタントは、現代の開発ワークフローの中核的な一部となりつつあります。同時に、多くのチームは自分たちのコードがどこに行くのか、どのように処理されるのか、誰がアクセスできるのかについてますます懸念しています。
OpenCodeとDocker Model Runnerを組み合わせることで、データ、インフラ、支出を完全にコントロールしつつ、強力なAI支援コーディング体験を構築できます。
この記事では、Docker Model Runnerを使えるようにOpenCodeを設定する方法を解説し、この構成が なぜプライバシー第一 で コスト意識の高い AI支援開発を可能にするのかを説明します。
OpenCodeとDocker Model Runnerとは何ですか?
OpenCode は、開発者のワークフローに直接統合するために設計されたオープンソースのコーディングアシスタントです。複数のモデルプロバイダーをサポートし、柔軟な構成システムを提供しているため、それらの間を簡単に切り替えることができます。
Docker Model Runner(DMR)は 、大規模な言語モデルを簡単に実行・管理できるようにします。OpenAI互換APIを公開し、既にOpenAIスタイルのエンドポイントをサポートしている既存のツールと簡単に統合できます。
これらは、完全に自分で管理するインフラ内で動作するモデルによって支えられた、馴染みのある開発者体験を提供します。
OpenCode構成の変更
OpenCode は、プロバイダーやモデルの定義方法を制御する設定ファイルを使ってカスタマイズできます。
この構成は2つの場所のいずれかで定義できます:
- グローバル構成: ~/.config/opencode/opencode.json
- プロジェクト固有の構成:プロジェクトのルートにopencode.json
プロジェクトレベルの構成が存在する場合、それがグローバルな構成よりも優先されます。
Docker Model RunnerでのOpenCodeの使用
Docker Model Runner(DMR)はOpenAI互換APIを公開し、OpenCodeとの統合を容易にします。この統合を有効にするには、 opencode.json ファイルをDMRサーバーに指定し、ローカルで利用可能なモデルを宣言するだけで済みます。
Docker Model Runnerが以下の位置で動作していると仮定します:http://localhost:12434/v1
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": {
"qwen-coder3": {
"name": "qwen-coder3"
},
"devstral-small-2": {
"name": "devstral-small-2"
}
}
}
}
}
この構成により、OpenCodeはDMRを通じてローカルホストモデルを活用し、強力かつプライベートなコーディングアシスタントを提供します。
Docker Desktopユーザーへの注意事項:
Docker Desktop経由でDocker Model Runnerを動かしている場合は、TCPアクセスが有効になっていることを確認してください。OpenCodeはHTTP経由でDocker Model Runnerに接続しており、TCPポートが公開されている必要があります:
docker desktop enable model-runner --tcp
有効化されると、Docker Model Runnerは http://localhost:12434/v1でアクセスできるようになります。
図 1:Docker Model Runnerを通じてOpenCodeがローカルホストモデルを活用できるようにする
図 2:qwen3-coder、devstral-small-2、gpt-oss などのモデルはコーディングのユースケースに適しています。
Model RunnerでOpenCodeを使用する利点
プライバシー・バイ・デザイン
OpenCodeとDocker Model Runnerを組み合わせることで、すべてのモデル推論を管理するインフラ内で行うことで、AI支援開発においてプライバシーを第一に考えることができます。
Docker Model Runnerは、OpenAI互換APIエンドポイントの背後でモデルを実行します。OpenCodeはプロンプト、ソースコード、コンテキストをそのエンドポイントにのみ送信し、他のどこにも送りません。
これはですね:
- 第三者のAIプロバイダーは関与していません
- 外部データ共有やベンダー側の保持はありません
- 外部サービスによるコードのトレーニングもありません
OpenCodeの視点から見ると、プロバイダーは単なるAPIエンドポイントに過ぎません。そのエンドポイントが開発者マシン、社内サーバー、プライベートクラウドのいずれかで動作するかは完全にあなた次第です。
コスト管理
プライバシーだけでなく、Docker Model Runnerでモデルを実行させることは、ホストされたAI APIに比べて大きなコスト優位性をもたらします。
クラウドホストのコーディングアシスタントは非常に高価になることがあります。特に以下の場合:
- 大規模なリポジトリとの連携
- 長い会話文脈やコード文脈の伝達
- 開発中に頻繁に反復プロンプトを実行する
Docker Model Runnerでは、推論は自社のハードウェア上で動作します。一度モデルを引き出されると、 トークンごとの手数料もリクエストベースの価格設定も、予期せぬ請求もありません。TeamsはAPIコストの上昇を気にせずに自由に利用を拡大できます。
推奨コーディングモデル
OpenCodeとDocker Model Runnerを組み合わせて使用する場合、モデルの選択は品質と開発者体験の両方に直接影響します。多くの汎用的なマイトモデルは比較的うまく機能しますが、 コーディングに特化したモデルは長いコンテキストウィンドウやコード認識的な推論に最適化されており、これは特に現実世界のリポジトリで重要です。
以下のモデルはOpenCodeおよびDocker Model Runnerでの使用に適しています。
これらのモデルはそれぞれDocker Model Runnerを通じて提供でき、OpenAI互換APIを通じて公開されます。
これらのモデルは、以下を実行すれば引き出せます:
docker model pull qwen3-coder
Docker Hubからモデルを引き出すこととHugging Face
Docker Model Runnerは Docker Hubだけでなく、 Hugging Face から直接モデルを引き出し、それらを他のDockerモデルと同様に実行・共有可能なOCIアーティファクトに自動変換できます。
例えば、Hugging Faceから直接モデルを抽出できます:
docker model pull huggingface.co/unsloth/Ministral-3-14B-Instruct-2512-GGUF
これにより、チームは一貫性や運用性を損なうことなく、より広範なオープンモデルエコシステムにアクセスできます。
コンテキストの長さが重要です
コーディングタスクでは、パラメータ数よりもコンテキストの長さの方が重要になることが多いです。大規模なリポジトリ、マルチファイルリファクタ、長い会話履歴は、モデルにより多くのコンテキストを渡せることで恩恵を受けます。
デフォルトでは:
- qwen3-coder → 128K コンテキスト
- devstral-small-2 → 128K コンテキスト
- GPT-OSS → 4、096 トークン
違いはモデルの意図に帰着します。
QWEN3-coder および devstral-small-2 はコーディングに特化したモデルで、大量のソースコード、プロジェクト構造、関連するコンテキストを単一のリクエストで取り込むよう設計されています。これらのユースケースでは、大きなデフォルトのコンテキストウィンドウが不可欠です。
一方、GPT-OSSは汎用モデルです。デフォルトのコンテキストサイズは、コード中心のワークフローにおいて非常に長い入力よりも重要度が低い、より広範な最適化目標を反映しています。
GPT-OSSのコンテキストサイズ拡大
より大きなコンテキストウィンドウで効果が良いコーディングタスクに gpt-oss を使いたい場合、Docker Model Runnerはコンテキストサイズを拡大してモデルを簡単に再パッケージ化できます。
例えば、128Kのコンテキストウィンドウを持つGPT-OSSのバージョンを作成するには、以下を実行します:
docker model pull gpt-oss # In case it's not pulled
docker model package --from gpt-oss --context-size 128000 gpt-oss:128K
これにより、拡張されたコンテキスト長を持つ新しいモデルアーティファクトが作成され、他のモデルと同様にDocker Model Runnerで提供されます。
パッケージ化後、 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)"
}
}
}
}
}
チーム内でモデルを共有する
モデルをOCIアーティファクトとしてパッケージ化することには追加の利点があります。それは 、得られたモデルをDocker Hubやプライベートレジストリにプッシュできるということです。
これによりチームは以下のことができます:
- 特定のモデルバリアント(コンテキストサイズを含む)を標準化すること
- ローカル再構成なしで開発者間でモデル共有
- 環境間での一貫した挙動を確保する
- バージョンとロールバックモデルの変更を明示的に行います
各開発者が独立してモデルをチューニングするのではなく、チームはモデルを一度作り上げて再利用する一流の成果物として扱うことができます。
すべてをまとめる:CLIのモデルを使う
Docker Model Runnerを設定し、gpt-oss:128Kモデルをパッケージ化すれば、OpenCodeからすぐに使い始められます。
このセクションでは、モデルを選択し、それを使ってDockerモデルプロジェクト内で直接 agents.md ファイルを生成する方法を解説します。
ステップ 1:モデルが利用可能かどうか確認する
まず、パッケージモデルが地元で入手可能かどうかを確認しましょう:
docker model ls
利用可能なモデルの中にGPT-OSS:128Kがリストされているのが見られます。もしそうでなければ、パッケージングの工程が無事に完了していることを確認してください。
ステップ 2:モデルを使用するために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": {
"name": "gpt-oss:128K"
}
}
}
}
}
これにより、モデルはdmrプロバイダーのもとでOpenCodeに利用可能となります。
ステップ 3:プロジェクト内でOpenCodeを開始する
Dockerモデルプロジェクトのルートから、OpenCodeを開始します:
opencode
リストからモデルを選択するには以下を実行します:
/models
図 3:OpenCodeのDocker Model RunnerによるGPT-OSSモデルの選択
ステップ 4:OpenCodeに agents.md を生成させる
OpenCodeが実行されたら、リポジトリをコンテキストとしてモデルに agents.md ファイルの生成を促します。
Generate an agents.md file in the project root following the agents.md specification and examples.
Use this repository as context and include sections that help an AI agent work effectively with this project, including:
- Project overview
- Build and test commands
- Code style guidelines
- Testing instructions
- Security considerations
Base the content on the actual structure, tooling, and conventions used in this repository.
Keep the file concise, practical, and actionable for an AI agent contributing to the project.
OpenCodeはDocker Model Runnerと連携しているため、リポジトリ構造や関連ファイルを安全にモデルに渡し、インフラ外にデータを送ることなく管理できます。
拡張された 128Kコンテキストウィンドウにより、モデルはプロジェクトのより大きな部分を推論でき、より正確で有用な agents.md が得られます。
図 4:結果として得られる agents.md ファイル
ステップ 5:Docker Model Runnerへのレビューと貢献
ファイルが生成されると:
cat agents.md
プロジェクトを正確に反映するよう必要な調整を行い、他のプロジェクト成果物と同様にコミットしてください:
git add agents.md
git commit -m "Add agents documentation"
この時点で、最初のDocker Model Runnerプルリクエストを開く準備ができています。
OpenCodeとDocker Model Runnerを組み合わせることで、高品質なドキュメントやプロジェクト成果物を簡単に提供でき、すべてのモデル推論やリポジトリのコンテキストを管理するインフラ内に収められます。
参加方法
Docker Model Runnerの強みはそのコミュニティにあり、常に成長の余地があります。このプロジェクトを最高のものにするために、皆様のご協力が必要です。参加するには、次のことができます。
- リポジトリに星をつける: Docker Model Runnerリポジトリに星をつけて、私たちの認知度を高めるためにご支援いただければ幸いです。
- アイデアを投稿してください。 新機能やバグ修正のアイデアはありますか?問題を作成して議論します。または、リポジトリをフォークし、変更を加えて、pull request を送信します。私たちはあなたがどんなアイデアを持っているかを見るのを楽しみにしています!
- 言葉を広める: 友人、同僚、および Docker で AI モデルを実行することに興味がある可能性のある人に伝えてください。
私たちは Docker Model Runner のこの新しい章に非常に興奮しており、一緒に何を構築できるかを見るのが待ちきれません。さあ、仕事に取り掛かりましょう!
さらに詳しく
- Docker Model Runner の一般提供に関するお知らせを確認する
- Model Runner GitHub リポジトリにアクセスしてください。Docker Model Runner はオープンソースであり、コミュニティからのコラボレーションと貢献を歓迎します。
- シンプルなhello GenAIアプリケーションでDocker Model Runnerを使い始める