Sandbox Docker de Codex
Ejecuta Codex desde un sandbox Docker de Dagu.
Usa una imagen runner con Codex CLI y deja que Dagu ejecute provider: codex dentro de un container por paso o raiz. El login ChatGPT funciona si el contenedor puede leer un CODEX_HOME basado en archivos; CODEX_API_KEY sirve para codex exec.
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 statusUsa la imagen base publica ghcr.io/openai/codex-universal.
Verifica codex --version y login status antes de llamadas al modelo.
Soporta CODEX_HOME montado para login de suscripcion ChatGPT.
Soporta CODEX_API_KEY para ejecuciones no interactivas codex exec.
Imagen runner
Instala Codex en una imagen runner y limpia el entrypoint base para que Dagu controle el comando. La verificacion de version debe pasar antes de usarla en un DAG.
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"]Auth con suscripcion ChatGPT
Si la CLI host ya esta logueada con ChatGPT y las credenciales estan en archivos, monta ese Codex home en una ruta separada y define CODEX_HOME dentro del contenedor.
- No montes sobre /root/.codex en esta imagen porque alli vive el cache del paquete standalone.
- Si el host usa keychain del sistema, crea un CODEX_HOME basado en archivos para el worker Dagu.
- auth.json contiene access tokens y debe tratarse como secreto.
Ejecucion con API key
Para automatizacion que no debe reutilizar login ChatGPT, pasa CODEX_API_KEY solo al paso harness que ejecuta Codex.
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.Alcance del container
Usa container por paso cuando solo Codex necesita la credencial. Usa container raiz solo cuando pasos command y Codex deben compartir toolchain y workspace.
Mas paginas sandbox