Команда AI for Devs подготовила перевод статьи о том, как использовать OpenCode вместе с Docker Model Runner для локальной разработки с LLM. В центре внимания — контроль над кодом, данными и затратами: модели запускаются локально, контекст не уходит во внешние сервисы, а ИИ-ассистент становится частью вашей инфраструктуры, а не сторонним SaaS. Практический разбор для тех, кто хочет использовать ИИ в разработке без компромиссов по безопасности и стоимости.
ИИ-ассистенты для написания кода становятся неотъемлемой частью современных процессов разработки. Одновременно с этим многие команды всё больше беспокоятся о том, куда уходит их код, как он обрабатывается и кто имеет к нему доступ.
Комбинируя OpenCode с Docker Model Runner, вы можете создать мощную среду разработки с ИИ-поддержкой, сохранив при этом полный контроль над данными, инфраструктурой и затратами.
В этой статье показано, как настроить OpenCode для работы с Docker Model Runner, а также объясняется, почему такая конфигурация позволяет выстроить ориентированный на приватность и осознанные затраты подход к разработке с использованием ИИ.
OpenCode — это open source ассистент для написания кода, разработанный для прямой интеграции в рабочие процессы разработчиков. Он поддерживает несколько провайдеров моделей и предоставляет гибкую систему конфигурации, позволяющую легко переключаться между ними.
Docker Model Runner (DMR) позволяет просто запускать и управлять большими языковыми моделями. Он предоставляет API, совместимый с OpenAI, благодаря чему его легко интегрировать с существующими инструментами, которые уже поддерживают эндпоинты в стиле OpenAI.
Вместе они обеспечивают привычный для разработчиков опыт, основанный на моделях, которые полностью работают внутри инфраструктуры, находящейся под вашим контролем.
OpenCode можно настраивать с помощью конфигурационного файла, который определяет, как описываются провайдеры и модели.
Задать конфигурацию можно в одном из двух мест:
Глобальная конфигурация: ~/.config/opencode/opencode.json
Конфигурация уровня проекта: opencode.json в корне проекта
Если присутствует конфигурация на уровне проекта, она имеет приоритет над глобальной.
Docker Model Runner (DMR) предоставляет API, совместимый с OpenAI, что делает его интеграцию с 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 Model Runner через Docker Desktop, убедитесь, что включён TCP-доступ. OpenCode подключается к Docker Model Runner по HTTP, поэтому TCP-порт должен быть открыт:
docker desktop enable model-runner --tcp
После этого Docker Model Runner будет доступен по адресу http://localhost:12434/v1.
Использование OpenCode вместе с Docker Model Runner позволяет выстроить ориентированный на приватность подход к разработке с ИИ, поскольку весь инференс моделей выполняется внутри инфраструктуры, которую вы полностью контролируете.
Docker Model Runner запускает модели за API-эндпоинтом, совместимым с OpenAI. OpenCode отправляет промпты, исходный код и контекст только на этот эндпоинт — и больше никуда.
Это означает:
Отсутствие сторонних ИИ-провайдеров
Отсутствие передачи данных вовне и хранения данных на стороне вендоров
Отсутствие обучения внешних сервисов на вашем коде
С точки зрения OpenCode провайдер — это просто API-эндпоинт. Где именно он запущен — на машине разработчика, на внутреннем сервере или в приватном облаке — полностью решаете вы.
Помимо приватности, запуск моделей через Docker Model Runner даёт заметное преимущество по затратам по сравнению с облачными ИИ-API.
Облачные ассистенты для написания кода могут очень быстро становиться дорогими, особенно когда:
Работа ведётся с большими репозиториями
Передаётся длинный диалоговый или кодовый контекст
Во время разработки часто выполняются итеративные запросы
При использовании Docker Model Runner инференс выполняется на вашем собственном оборудовании. После загрузки модели отсутствуют платежи за токены, тарификация за запросы и неожиданные счета. Команды могут свободно масштабировать использование, не беспокоясь о росте затрат на API.
При использовании OpenCode с Docker Model Runner выбор модели напрямую влияет как на качество, так и на удобство работы разработчиков. Хотя многие универсальные модели показывают приемлемые результаты, модели, ориентированные на код, оптимизированы под длинные контекстные окна и понимание структуры кода, что особенно важно для реальных репозиториев.
Следующие модели хорошо подходят для использования с OpenCode и Docker Model Runner:
qwen3-coder
devstral-small-2
gpt-oss
Каждая из этих моделей может быть запущена через Docker Model Runner и доступна через его API, совместимый с OpenAI.
Загрузить эти модели можно, просто выполнив команду:
docker model pull qwen3-coder
Docker Model Runner умеет загружать модели не только из Docker Hub, но и напрямую из Hugging Face, автоматически преобразуя их в OCI-артефакты, которые можно запускать и распространять так же, как любые другие Docker-модели.
Например, модель можно загрузить напрямую из 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 для задач написания кода, которым требуется более длинное контекстное окно, Docker Model Runner позволяет легко перепаковать модель с увеличенным размером контекста.
Например, чтобы создать версию gpt-oss с контекстным окном 128K, выполните:
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 или приватный реестр.
Это позволяет командам:
Стандартизироваться на конкретных вариантах моделей (включая размер контекста)
Делиться моделями между разработчиками без локальной перенастройки
Обеспечивать единообразное поведение в разных окружениях
Явно версионировать изменения моделей и выполнять откаты
Вместо того чтобы каждый разработчик настраивал модели по-своему, команды могут относиться к моделям как к артефактам первого класса: собирать их один раз и использовать повсеместно.
После настройки Docker Model Runner и упаковки модели gpt-oss:128K вы можете сразу начать использовать её в OpenCode.
В этом разделе показано, как выбрать модель и применить её для генерации файла agents.md прямо внутри проекта Docker Model.
Сначала проверьте, что упакованная модель доступна локально:
docker model ls
В списке доступных моделей должна присутствовать gpt-oss:128K. Если её нет, убедитесь, что этап упаковки был успешно завершён.
Убедитесь, что в 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" } } } } }
Это делает модель доступной для OpenCode в рамках провайдера dmr.
Из корня проекта Docker Model запустите OpenCode:
opencode
Затем выберите модель из списка, выполнив команду:
/models
После запуска 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.
agents.md
После генерации файла:
cat agents.md
Внесите необходимые правки, чтобы он точно отражал проект, а затем закоммитьте его как любой другой артефакт проекта:
git add agents.md git commit -m "Add agents documentation"
На этом этапе вы готовы открыть свой первый pull request в Docker Model Runner.
Использование OpenCode вместе с Docker Model Runner упрощает создание качественной документации и проектных артефактов, при этом весь инференс моделей и контекст репозитория остаются внутри инфраструктуры, находящейся под вашим контролем.
Ознакомьтесь с анонсом выхода Docker Model Runner в статусе General Availability
Посетите наш GitHub-репозиторий Model Runner. Docker Model Runner — open source проект, и мы приветствуем сотрудничество и вклад со стороны сообщества
Начните работу с Docker Model Runner на простом примере hello GenAI приложения
Друзья! Эту статью подготовила команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-ассистентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!
Источник


