Содержание
- Что такое OpenCode и где проходят границы продукта
- Условия доступа и где брать актуальные требования
- Порядок запуска OpenCode в Docker
- Учебный пример и критерии проверки
- Смежные варианты запуска и что выбирать по задаче
- Типичные проблемы и проверяемые способы диагностики
- Вариации промптов под типовые задачи
- Частые вопросы
Как запустить OpenCode в Docker
Черновик готовит редакция с помощью ИИ. За стандарт издания отвечает главный редактор — Валерий Курземнек.
Материал редакции Зерокодера. Счёт по выдаче снят собственным прогоном 18 октября 2026 года; цитаты источников приведены дословно. Обновлено: октябрь 2026.
Как запустить OpenCode в Docker: официальная документация проекта даёт готовую команду docker run -it --rm ghcr.io/anomalyco/opencode, которая поднимает терминальный агент кодирования внутри контейнера. OpenCode — открытый агент кодирования: он доступен как терминальный интерфейс, настольное приложение и расширение IDE. Контейнер даёт изоляцию окружения и повторяемость версии. Мы скачали подборку результатов веб-поиска по запросу «Как запустить OpenCode в Docker»: текст отдали 9 из 10.
Что такое OpenCode и где проходят границы продукта
Документация проекта описывает OpenCode как открытый агент кодирования с интерфейсом на базе терминала, настольным приложением и расширением IDE. Внутри контейнера вы получаете терминальную оболочку агента. Настольное приложение и расширение редактора живут на хосте.
Разделяйте слои. OpenCode — это клиент, который общается с выбранным поставщиком LLM. Модель считает провайдер, к которому вы подключаетесь по ключу API. Контейнер здесь — способ упаковать клиент.
В разделе про установку на dev.opencode.ai сказано, что OpenCode 1 и OpenCode 2 используют одну команду opencode и не ставятся рядом под командой по умолчанию. Миграция на вторую версию описана отдельно. Для контейнера это важно: тег образа определяет версию.
Продукт поддерживает разных поставщиков LLM через настройку их ключей. Новичкам документация советует OpenCode Zen — список моделей, протестированных командой проекта.
Таблица ниже разводит, что где живёт.
| Слой | Где работает | Какую роль играет |
|---|---|---|
| OpenCode (клиент) | В контейнере или на хосте | Принимает команды и правит код |
| Провайдер LLM | Внешний сервис или ваш сервер | Считает модель, отвечает по API |
| Docker | Хост | Изолирует окружение, фиксирует версию образа |
| Проект | Ваш каталог на хосте | Файлы, которые видит агент |
Так вы отвечаете на первый вопрос: контейнер запускает клиента.
Условия доступа и где брать актуальные требования
Чтобы запустить OpenCode в терминале, документация перечисляет два требования: современный эмулятор терминала и ключи API для поставщиков LLM, которых вы хотите использовать. В списке терминалов названы WezTerm, Alacritty, Ghostty, Kitty для Linux и macOS.
Требования к системе публикуются на странице установки. Перед развёртыванием сверяйтесь с ней. Документация — первоисточник по составу требований.
Для Windows проект советует WSL: по данным dev.opencode.ai, подсистема даёт лучшую производительность и полную совместимость с функциями OpenCode.
Ключи API оформляются у выбранного поставщика. Регистрация, платёжные данные и выпуск ключа происходят на стороне провайдера, и условия зависят от него. Если новичок не выбрал провайдера, документация рекомендует OpenCode Zen.
Таблица способов установки показывает, где Docker занимает свою нишу.
| Способ | Команда | Когда подходит |
|---|---|---|
| Скрипт | curl -fsSL https://opencode.ai/install \| bash |
Быстрая установка бинарника |
| npm | npm install -g opencode-ai |
Есть Node.js |
| Homebrew | brew install anomalyco/tap/opencode |
macOS и Linux |
| Docker | docker run -it --rm ghcr.io/anomalyco/opencode |
Изоляция и повторяемость |
Строка про Docker взята из раздела установки dev.opencode.ai. Она запускает контейнер в интерактивном режиме.
Порядок запуска OpenCode в Docker
Начните с проверки, что образ доступен: docker run -it --rm ghcr.io/anomalyco/opencode. Флаг -it даёт интерактивную сессию, --rm удаляет контейнер после выхода. Документация приводит эту команду как вариант установки.
Для работы над проектом смонтируйте каталог. Схема сборки: docker run -it --rm -v "$PWD:/work" -w /work ghcr.io/anomalyco/opencode. Каталог хоста появляется внутри контейнера по пути /work, и агент стартует в этой рабочей директории.
Подключите провайдера. В терминальном интерфейсе выполните /connect, выберите opencode и перейдите на opencode.ai/auth. Документация описывает этот порядок: вход, добавление платёжных данных, копирование ключа API и вставка ключа в приглашение. Поле называется API key.
Если выбираете другого поставщика, документация предлагает остановиться на нём при подключении. Ключ передавайте через переменные окружения или файл конфигурации, смонтированный в контейнер.
Для разовой сессии подходит —rm. Для сохранения входа между запусками учитывайте каталог данных, а также конфигурацию. В стороннем руководстве agent37-platform/opencode-docker указано, что /connect сохраняет учётные данные в ~/.local/share/opencode/auth.json внутри контейнера; конфигурация расположена отдельно в ~/.config/opencode. Сохраняйте эти каталоги во внешнем томе, предварительно проверив домашний каталог и пользователя именно вашего образа.
Порядок целиком: проверить образ, смонтировать проект, запустить контейнер, подключить провайдера, работать с кодом, выйти и убедиться, что контейнер удалён.
Учебный пример и критерии проверки
Предлагаемое упражнение: возьмите небольшой репозиторий и дайте агенту правку одной функции. Результат смотрите по диффу в каталоге на хосте.
Порядок действий. Смонтируйте каталог проекта. Запустите контейнер в интерактивном режиме. Подключите провайдера через /connect. Опишите задачу словами: что меняем и в каком файле. Дождитесь плана и внесите правку.
Критерий первый: контейнер стартует без падения, приглашение агента появляется в терминале.
Критерий второй: после правки файл в каталоге на хосте изменился. Это проверяет, что монтирование работает.
Критерий третий: подключение к провайдеру принимает ключ. При ошибке ключа агент не получит ответа модели.
Документация даёт приём для работы с изображениями: перетащите файл в терминал, и OpenCode сможет просканировать его и добавить в подсказку. Это полезно, когда задача привязана к макету.
Промпт для типового учебного запроса:
Ты работаешь в репозитории, смонтированном в рабочую директорию.
Найди файл [путь к файлу] и внеси правку: [что изменить].
Сначала покажи план из шагов, дождись подтверждения, затем примени изменения.
Объясни, какие файлы затронул и почему. Не трогай файлы вне [путь].
Замените [путь к файлу] и [что изменить] под свою задачу. После плана добавляйте детали или правьте формулировку. Проверку диффа делайте командой git diff.
Смежные варианты запуска и что выбирать по задаче
Docker — один из нескольких путей установки. Документация перечисляет npm, Bun, pnpm, Yarn, Homebrew, Chocolatey, Scoop, Mise и бинарник из раздела Releases.
Выбор по задаче. Разовые сессии на машине без нужного окружения закрывает контейнер. Ежедневная работа на рабочей станции ложится на нативную установку. Общие машины выигрывают от изоляции контейнера.
Версии. Документация v2 упоминает версионные теги образов, например ghcr.io/anomalyco/opencode:2.0.0. Тег фиксирует версию клиента. Так воспроизводится окружение.
Терминалы. В требованиях названы WezTerm, Alacritty, Ghostty, Kitty. Любой современный эмулятор покрывает базовые сценарии.
Windows. Документация советует WSL. В разделе про установку отмечено, что поддержка установки через Bun на Windows в процессе добавления.
Обзор соседних инструментов и их отличий — в материале про аналоги Qwen Code. Если вы поднимаете модель на своём железе, пригодится разбор про локальный запуск Nemotron GGUF.
Таблица ниже подводит итог.
| Задача | Вариант |
|---|---|
| Разовый запуск | Контейнер с --rm |
| Работа над проектом | Контейнер с монтированием каталога |
| Ежедневная работа | Нативная установка |
| Повторяемость версии | Образ с тегом |
Типичные проблемы и проверяемые способы диагностики
Проблема 1: конфликт версий. Документация указывает, что OpenCode 1 и OpenCode 2 используют команду opencode и не ставятся рядом по умолчанию. Диагностика: проверьте, какой бинарник отвечает на opencode, и версию образа в контейнере. Разводите установки по разным средам.
Проблема 2: агент не видит файлы. Причина обычно в монтировании. Проверьте, что путь в опции -v существует на хосте, и что рабочая директория внутри контейнера задана. Запустите простую команду, чтобы увидеть содержимое каталога.
Проблема 3: провайдер не отвечает. Проверьте ключ и подключение. В терминале выполните /connect, выберите провайдера и вставьте ключ заново. Убедитесь, что платёжные данные добавлены на стороне провайдера.
Проблема 4: терминал не поддерживает интерактив. Интерактивный режим требует флага -it. Если агент не получает ввод, проверьте, что команда запущена с этими флагами.
Проблема 5: потеря сессии после удаления контейнера. Сохраняйте проект и данные OpenCode во внешних томах. В руководстве agent37-platform отдельно названы ~/.local/share/opencode с учётными данными и сессиями и ~/.config/opencode с настройками. Проверьте, что смонтированы нужные каталоги внутри используемого образа.
Отдельно про DNS: если подключение к провайдеру упирается в сеть, посмотрите разбор про подбор DNS-серверов.
Каждую проблему проверяйте конкретным действием: запустите команду, посмотрите вывод, измените один параметр.
Вариации промптов под типовые задачи
Когда подключение установлено, запросы формулируются под задачу. Ниже набор вариаций к базовому промпту из раздела про учебный пример.
Промпт для объяснения незнакомого кода:
Прочитай файл [путь]. Объясни, что делает каждая функция, и укажи места,
которые зависят от внешних сервисов. Отвечай списком без правок кода.
Промпт для добавления тестов:
В репозитории есть файл [путь к файлу тестов]. Добавь тесты для функции
[имя функции]. Сохрани стиль существующих тестов и поясни, что покрывает
каждый новый случай.
Промпт для поиска причины ошибки:
При запуске [команда] появляется ошибка: [текст ошибки].
Найди строку в репозитории, которая её вызывает, и предложи варианты
исправления. Правь код только после подтверждения.
Промпт для рефакторинга:
Раздели функцию [имя] в файле [путь] на части с понятными именами.
Сохрани поведение и покажи дифф до применения.
Замените [путь], [имя функции] и [текст ошибки] под свой проект. Подключение к редактору через MCP описано в материале про интеграцию Blender и Claude.
Частые вопросы
Как запустить OpenCode в Docker одной командой?
Документация проекта приводит вариант docker run -it --rm ghcr.io/anomalyco/opencode. Он запускает контейнер в интерактивном режиме и удаляет его после выхода. Для работы над проектом добавьте монтирование каталога через флаг -v и рабочую директорию через -w. Так агент увидит файлы вашего репозитория.
Нужен ли ключ API для работы в контейнере?
Да, документация перечисляет ключи API для поставщиков LLM среди требований для работы в терминале. В терминальном интерфейсе подключение оформляется командой /connect с выбором провайдера. Ключ вставляется в приглашение после входа и добавления платёжных данных. Новичкам документация советует OpenCode Zen.
Чем контейнер отличается от обычной установки?
Контейнер изолирует окружение и фиксирует версию образа через тег. Нативная установка даёт привычную работу в системе. Документация перечисляет скрипт установки, npm, Homebrew, Mise и другие способы. Выбор зависит от задачи: разовые сессии удобнее в контейнере, ежедневную работу чаще ведут нативно.
Что делать, если версии OpenCode конфликтуют?
Документация указывает, что обе версии используют команду opencode и не ставятся рядом по умолчанию. Разведите среды: держите разные версии в разных контейнерах или на разных машинах. Проверьте, какая версия отвечает на команду, и сверьте тег образа. Миграция на вторую версию описана отдельно.
Как проверить, что всё работает?
Смонтируйте каталог проекта и запустите контейнер. Подключите провайдера через /connect и дайте агенту задачу на правку одного файла. Успешный результат виден по изменению файла на хосте и по выводу команды git diff. Если файл не изменился, проверьте монтирование каталога.
