Sandbox Docker OpenCode
Executer OpenCode depuis une sandbox Docker Dagu.
La commande non interactive d'OpenCode est opencode run. Placez le binaire opencode et les credentials provider dans un runner container, puis appelez provider: opencode depuis 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.Installe OpenCode avec le package npm opencode-ai.
Verifie opencode --version via Dagu avant les appels modele.
Peut monter ~/.local/share/opencode/auth.json pour les providers configures.
Peut aussi utiliser des variables d'environnement provider dans container.env.
Image runner
Installez OpenCode dans l'image runner et verifiez le binaire au build. L'entrypoint vide laisse Dagu controler la commande.
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
Avant de monter les credentials, lancez un shell provider qui affiche la version OpenCode et le chemin du binaire dans le container.
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 stocke les logins provider dans ~/.local/share/opencode/auth.json et lit aussi les cles provider depuis l'environnement ou un .env projet. Montez ou passez seulement ce que le provider choisi exige.
Nom de modele
Les noms de modele OpenCode ont la forme provider/model. L'exemple utilise anthropic/claude-sonnet-4-5; remplacez-le par un modele disponible dans votre configuration OpenCode.
Autres pages sandbox
Sandbox Docker OpenCode
Comprendre les containers Docker partages et par etape.
Codex dans DockerExecuter Codex avec login ChatGPT fichier ou CODEX_API_KEY.
Claude Code dans DockerPasser des credentials Anthropic a une seule etape Claude Code.
CLI personnalisee dans DockerUtiliser le meme schema pour une CLI inconnue de Dagu.