OpenCode Docker-песочница
Запускайте OpenCode из Docker-песочницы Dagu.
Non-interactive команда OpenCode называется opencode run. Поместите бинарь opencode и provider credentials в runner container, затем вызывайте provider: opencode из Dagu harness.run.
steps:
- id: opencode_review
action: harness.run
container:
image: dagu-opencode-runner:local
pull_policy: never
working_dir: /workspace
volumes:
- .:/workspace:ro
- ${HOME}/.local/share/opencode:/root/.local/share/opencode:ro
with:
provider: opencode
model: anthropic/claude-sonnet-4-5
prompt: |
Review this repository and summarize the highest-risk issues.Устанавливает OpenCode через npm package opencode-ai.
Проверяет opencode --version через Dagu до вызова модели.
Может монтировать ~/.local/share/opencode/auth.json для настроенных providers.
Также может использовать provider-specific environment variables в container.env.
Runner image
Установите OpenCode в runner image и проверьте бинарь при build. Пустой entrypoint оставляет управление командой за Dagu.
FROM node:22-bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates git bash \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g opencode-ai
RUN opencode --version
WORKDIR /workspace
ENTRYPOINT []
CMD ["bash"]Smoke test
Перед mount credentials запустите shell provider, который печатает версию OpenCode и binary path внутри контейнера.
type: graph
harnesses:
shell:
binary: sh
prefix_args:
- -c
prompt_mode: arg
steps:
- id: opencode_version
action: harness.run
container:
image: dagu-opencode-runner:local
pull_policy: never
with:
provider: shell
prompt: |
set -eu
opencode --version
command -v opencodeCredentials
OpenCode хранит provider login data в ~/.local/share/opencode/auth.json и также читает provider keys из environment или project .env. Монтируйте или передавайте только то, что нужно выбранному provider.
Model name
Имена моделей OpenCode имеют формат provider/model. В примере используется anthropic/claude-sonnet-4-5; замените его на модель, доступную в вашей OpenCode provider configuration.
Другие sandbox-страницы
OpenCode Docker-песочница
Разобрать shared и per-step Docker containers.
Codex в DockerЗапустить Codex с file-backed ChatGPT login или CODEX_API_KEY.
Claude Code в DockerПередать Anthropic credentials одному шагу Claude Code.
Своя CLI в DockerИспользовать ту же схему для CLI, которого нет в списке built-in providers Dagu.