OpenCode Docker sandbox
شغل OpenCode من Docker sandbox في Dagu.
الأمر غير التفاعلي في OpenCode هو opencode run. ضع binary باسم 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 باسم opencode-ai.
يتحقق من opencode --version عبر Dagu قبل استدعاءات النموذج.
يمكنه ربط ~/.local/share/opencode/auth.json للـ providers المجهزة.
يمكنه أيضا استخدام متغيرات بيئة خاصة بالـ provider داخل container.env.
صورة runner
ثبت OpenCode في runner image وتحقق من binary أثناء 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
قبل ربط credentials، شغل shell provider يطبع إصدار OpenCode ومسار binary من داخل الحاوية.
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 في ~/.local/share/opencode/auth.json ويقرأ أيضا provider keys من البيئة أو ملف .env في المشروع. اربط أو مرر فقط ما يحتاجه provider المختار.
اسم النموذج
أسماء النماذج في OpenCode تستخدم صيغة provider/model. المثال يستخدم anthropic/claude-sonnet-4-5؛ غيره إلى نموذج متاح في إعدادات OpenCode provider لديك.
صفحات sandbox أخرى