Codex Docker-песочница
Запускайте Codex из Docker-песочницы Dagu.
Подготовьте runner image с Codex CLI, затем запускайте provider: codex в step-level или root-level container. ChatGPT login работает, если контейнер читает file-backed CODEX_HOME; для API key runs используйте 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 statusИспользует публичный базовый образ ghcr.io/openai/codex-universal.
Проверяет codex --version и login status до вызовов модели.
Поддерживает mounted CODEX_HOME для ChatGPT subscription login.
Поддерживает CODEX_API_KEY для non-interactive codex exec.
Runner image
Установите Codex в runner image и очистите entrypoint базового образа, чтобы Dagu управлял командой. Перед использованием в 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"]ChatGPT subscription auth
Если host CLI уже залогинен через ChatGPT и credentials сохранены в файлах, смонтируйте этот Codex home в отдельный путь и задайте CODEX_HOME внутри контейнера.
- Не монтируйте поверх /root/.codex в этом образе: там лежит cache standalone package.
- Если host использует OS keychain, создайте отдельный file-backed CODEX_HOME для Dagu worker.
- auth.json содержит access tokens и должен считаться секретом.
API-key run
Для automation без ChatGPT login передавайте CODEX_API_KEY только в harness step, который запускает 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.Container scope
Используйте step-level container, если credential нужен только Codex. Root-level container нужен только когда command шаги и Codex должны делить toolchain и workspace.
Другие sandbox-страницы