Codex Docker-Sandbox
Codex aus einer Dagu Docker-Sandbox ausfuehren.
Nutze ein Runner Image mit Codex CLI und lasse Dagu provider: codex in einem step-level oder root-level container ausfuehren. ChatGPT Login funktioniert, wenn der Container ein file-backed CODEX_HOME lesen kann; API-key runs nutzen CODEX_API_KEY.
steps:
- id: codex_login_status
action: harness.run
container:
image: dagu-codex-runner:local
pull_policy: never
working_dir: /workspace
volumes:
- .:/workspace:ro
- ${HOME}/.codex:/codex-home
env:
- CODEX_HOME=/codex-home
with:
provider: shell
prompt: |
set -eu
codex --version
codex login statusNutzt das oeffentliche Base Image ghcr.io/openai/codex-universal.
Prueft codex --version und login status vor Modellaufrufen.
Unterstuetzt gemountetes CODEX_HOME fuer ChatGPT Subscription Login.
Unterstuetzt CODEX_API_KEY fuer non-interactive codex exec runs.
Runner Image
Installiere Codex in einem Runner Image und leere den Base Entrypoint, damit Dagu den Befehl kontrolliert. Der Version Check sollte vor der Nutzung im DAG bestehen.
FROM ghcr.io/openai/codex-universal:latest
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates curl \
&& rm -rf /var/lib/apt/lists/*
ENV CODEX_NON_INTERACTIVE=1 \
CODEX_INSTALL_DIR=/usr/local/bin
RUN curl -fsSL https://chatgpt.com/codex/install.sh | sh
RUN codex --version
WORKDIR /workspace
ENTRYPOINT []
CMD ["/bin/bash"]ChatGPT Subscription Auth
Wenn die Host-CLI mit ChatGPT eingeloggt ist und Credentials dateibasiert gespeichert sind, mounte dieses Codex home an einen separaten Pfad und setze CODEX_HOME im Container.
- Nicht ueber /root/.codex mounten, weil dort in diesem Image der Standalone-Package-Cache liegt.
- Wenn der Host einen OS-Keychain nutzt, erstelle ein separates file-backed CODEX_HOME fuer den Dagu worker.
- auth.json enthaelt Access Tokens und ist als Secret zu behandeln.
API-Key Run
Fuer Automation ohne ChatGPT Login uebergib CODEX_API_KEY nur an den harness-Schritt, der Codex startet.
steps:
- id: codex_review
action: harness.run
container:
image: dagu-codex-runner:local
pull_policy: never
working_dir: /workspace
volumes:
- .:/workspace:ro
env:
- CODEX_API_KEY=${CODEX_API_KEY}
with:
provider: codex
prompt: |
Review this repository and summarize the highest-risk issues.Container-Scope
Nutze step-level container, wenn nur Codex das Credential braucht. Nutze root-level container nur, wenn command-Schritte und Codex dieselbe Toolchain und denselben Workspace teilen muessen.
Weitere Sandbox-Seiten