Sandbox Docker do Codex
Execute Codex a partir de um sandbox Docker do Dagu.
Use uma imagem runner com a Codex CLI e deixe o Dagu executar provider: codex dentro de um container por passo ou raiz. Login ChatGPT funciona quando o container consegue ler um CODEX_HOME em arquivo; runs com API key usam 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 statusUsa a imagem base publica ghcr.io/openai/codex-universal.
Verifica codex --version e login status antes de chamadas ao modelo.
Suporta CODEX_HOME montado para login ChatGPT.
Suporta CODEX_API_KEY para runs codex exec nao interativos.
Imagem runner
Instale Codex na imagem runner e limpe o entrypoint da base para que o Dagu controle o comando. A verificacao de versao deve passar antes do uso no 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 com assinatura ChatGPT
Se a CLI do host ja esta logada com ChatGPT e as credenciais estao em arquivo, monte esse Codex home em um caminho separado e defina CODEX_HOME dentro do container.
- Nao monte sobre /root/.codex nesta imagem, porque o cache do pacote standalone fica ali.
- Se o host usa keychain do sistema, crie um CODEX_HOME em arquivo separado para o worker Dagu.
- auth.json contem access tokens e deve ser tratado como segredo.
Run com API key
Para automacao que nao deve reutilizar login ChatGPT, passe CODEX_API_KEY apenas ao passo harness que executa 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.Escopo do container
Use container por passo quando apenas Codex precisa da credencial. Use container raiz apenas quando passos command e Codex devem compartilhar a mesma toolchain e workspace.
Mais paginas de sandbox