必须显式指定 workspace 挂载点并配置 network_mode: "service:backend",否则 codex 只见空目录且无法调用后端 api;需挂载 frontend/backend/codex-home 目录、启用 cap_sys_admin 与 seccomp 配置,并确保镜像含 iptables/curl/jq/git 等依赖。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要用 Docker Compose 让 Codex 参与全栈项目开发,必须让 Codex 容器能安全访问项目代码、调用本地服务、执行构建命令,并与前端/后端/数据库容器网络互通——直接复用默认配置会因路径隔离、权限限制或网络不可达导致任务失败。
准备可挂载的项目结构
在宿主机新建一个统一工作目录,例如 my-codex-stack:
mkdir -p my-codex-stack/{frontend,backend,db,config,codex-home}
把你的前端代码放进 frontend/,后端放进 backend/,SQL 初始化脚本放进 db/init.sql。Codex 不会自动识别项目结构,【必须显式指定 workspace 挂载点,否则它只看到空容器根目录】。
cd my-codex-stack
编写 docker-compose.yml 编排服务
在当前目录创建 docker-compose.yml,内容如下(注意 service 名称要小写且无下划线):
services:
frontend:
image: nginx:alpine
ports: ["8080:80"]
volumes: ["./frontend:/usr/share/nginx/html:ro"]
backend:
build: ./backend
ports: ["3001:3000"]
depends_on: [db]
db:
image: postgres:15
environment:
POSTGRES_DB: app
POSTGRES_PASSWORD: devpass
volumes: ["./db/data:/var/lib/postgresql/data"]
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d app"]
codex:
image: codex:latest
volumes:
- ./frontend:/workspace/frontend:rw
- ./backend:/workspace/backend:rw
- ./codex-home:/root/.codex:rw
environment:
- CODEX_UNSAFE_ALLOW_NO_SANDBOX=1
cap_add:
- CAP_SYS_ADMIN
security_opt:
- seccomp:seccomp_profile.json
network_mode: "service:backend"
注意:network_mode: "service:backend" 表示 Codex 容器共享 backend 的网络命名空间,这样 Codex 就能直接用 http://localhost:3000 调用后端 API,无需通过服务名或宿主 IP。
配置 Codex 运行环境
方法一:使用预编译镜像(推荐)
配置 OpenClaw 多提供商认证与 OpenAI Codex OAuth 备用方案,实现自动模型切换,适用于多 OpenAI Codex 账户设置。
运行 docker pull ghcr.io/codex-ai/codex-cli:stable,然后修改 docker-compose.yml 中 codex 服务的 image 行为 ghcr.io/codex-ai/codex-cli:stable。
方法二:本地构建(需调试时)
① 克隆官方 CLI 仓库:git clone https://gitcode.com/gh_mirrors/co/codex-register codex-cli
② 进入目录并确认 Dockerfile 存在且含 apt-get install -y iptables curl jq git
③ 构建镜像:docker build -t codex:latest -f Dockerfile .
构建完成后检查镜像大小是否 ≥180MB,小于则说明系统工具未装全,Codex 启动后会立即退出。
启动并验证 Codex 全栈交互能力
第一步:确保 seccomp_profile.json 已放在当前目录(从 codex-rs/linux-sandbox/src/landlock.rs 提取或下载官方版本)。
第二步:启动全部服务:docker-compose up -d。
第三步:进入 Codex 容器交互:docker-compose exec codex sh。
第四步:在容器内执行测试命令:cd /workspace/backend && codex "add health check endpoint to express app"。
这一步会触发 Codex 修改 backend 代码、运行 npm test、调用 http://localhost:3000/health 验证结果——只有 network_mode 和挂载路径都正确,这个链路才能走通。










