[codex] feat(docker): add portable agent environment - #6583
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d5bb220272
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - package.json | ||
| - pnpm-lock.yaml | ||
| - apps/server/** |
There was a problem hiding this comment.
Trigger Docker E2E for every build input
The workflow watches pnpm-lock.yaml but omits pnpm-workspace.yaml and patches/**, even though the Dockerfile copies both before installation. A change to workspace dependency/build configuration or to a patch applied during pnpm install can therefore break the image while this Docker E2E job is skipped; include all direct build inputs in both the pull-request and push path filters.
Useful? React with 👍 / 👎.
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This PR introduces a complete Docker deployment environment with Dockerfile, Compose orchestration, CI workflow, E2E testing, and documentation (~800 new lines). New deployment infrastructure of this scope warrants human review to verify security configurations, credential handling, and operational correctness. You can add or adjust custom eligibility rules. Learn more. |
# Conflicts: # docs/user/install.md
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ef54db0. Configure here.
| - packages/** | ||
| - scripts/docker-config.test.ts | ||
| - scripts/docker-e2e.ts | ||
| - .github/workflows/docker.yml |
There was a problem hiding this comment.
CI skips Docker build script inputs
Medium Severity
The Docker E2E path filters omit scripts/lib/** and the root Vite config even though the image build loads those files when packing the server and building the web client. Changes there can ship a broken image without this workflow running.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit ef54db0. Configure here.
|
Note 🤖 GPT-5.6 Sol responding on behalf of Theo Closing this PR after an automated pass over open pull requests. Adds a new unsupported distribution or deployment system that increases ongoing maintenance. |


Problem
T3 Code does not have a first-party container deployment for a persistent remote environment. A container also cannot see provider CLIs or subscription login state installed on the host, and copying those credentials into an image or repository would expose them through the build context or image history.
Changes
mainVerification
vp test run scripts/docker-config.test.tsvp run --filter @t3tools/scripts typecheckvp fmt ... --checkdocker compose -f compose.yaml config --quietnode scripts/docker-e2e.tsGenerated with GPT-5.6 Sol in the Codex harness through T3 Code.
Note
Add portable Docker agent environment with multi-stage build and E2E tests
node) on port 3773 with optional provider CLIs and a healthcheck./home/nodestate and a configurable workspace bind mount, sodocker compose upstarts the full stack.Macroscope summarized ef54db0.
Note
Medium Risk
New deployment surface and build-time fetches (npm globals, Cursor installer) affect supply chain and how secrets might leak via image layers; mitigated by ignore rules, builder checks, and E2E canary tests rather than changes to core auth/runtime code paths.
Overview
Adds a first-party Docker distribution so T3 Code can run headless in an isolated container with bundled provider CLIs and persistent state.
A multi-stage Dockerfile builds the server and web client, deploys production artifacts, and ships a non-root runtime (
node) on port 3773 with optional global installs for Codex, Claude Code, OpenCode, and Cursor Agent. The builder fails the build if credential paths (.env, provider auth files, SSH, etc.) appear in the build context.compose.yaml wires a
t3service with at3-homevolume for/home/node(T3 + provider logins) and a bind-mounted workspace at/workspace, plus env knobs for hostname, bind address, and provider install toggles.Security hardening extends
.dockerignoreand.gitignorefor machine-local credentials; docs (docs/user/docker.md) cover pairing, in-container provider login, and networking.CI and tests:
scripts/docker-config.test.tsasserts ignore rules, compose shape, and Dockerfile invariants;scripts/docker-e2e.ts(andpnpm test:docker) builds with synthetic credential canaries, verifies they never land in the image, exercises the real Compose stack (health, web client, volume persistence across recreate, no Docker socket), and.github/workflows/docker.ymlruns that E2E on relevant path changes.Reviewed by Cursor Bugbot for commit ef54db0. Bugbot is set up for automated code reviews on this repo. Configure here.