Sandbox Docker de OpenCode
Ejecuta OpenCode desde un sandbox Docker de Dagu.
El comando no interactivo de OpenCode es opencode run. Coloca el binario opencode y credenciales provider dentro de un runner container, y llama provider: opencode desde 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.Instala OpenCode con el paquete npm opencode-ai.
Verifica opencode --version mediante Dagu antes de llamadas al modelo.
Puede montar ~/.local/share/opencode/auth.json para providers configurados.
Tambien puede usar variables de entorno especificas del provider en container.env.
Imagen runner
Instala OpenCode en la imagen runner y verifica el binario en build. El entrypoint vacio deja que Dagu controle el comando.
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"]Prueba de humo
Antes de montar credenciales, ejecuta un shell provider que imprima la version de OpenCode y la ruta del binario dentro del contenedor.
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 opencodeCredenciales
OpenCode guarda datos de login provider en ~/.local/share/opencode/auth.json y tambien lee claves provider desde el entorno o un .env del proyecto. Monta o pasa solo lo que necesita el provider seleccionado.
Nombre de modelo
Los nombres de modelo en OpenCode usan formato provider/model. El ejemplo usa anthropic/claude-sonnet-4-5; cambialo por un modelo disponible en tu configuracion de provider OpenCode.
Mas paginas sandbox
Sandbox Docker de OpenCode
Entiende containers Docker compartidos y por paso.
Codex en DockerEjecuta Codex con login ChatGPT en archivo o CODEX_API_KEY.
Claude Code en DockerPasa credenciales Anthropic a un solo paso Claude Code.
CLI personalizada en DockerUsa el mismo patron para una CLI que Dagu no conoce por nombre.