Feature/mount-config-dir-into-container #876
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #789
What?
This PR enhances
run_in_container.sh
by optionally mounting the user's local.codex
configuration directory into the Docker container. This allows configuration and session persistence between container restarts.Key Changes:
--config
flag.$HOME/.codex
if--config
not provided.Why?
Currently, users lose Codex CLI configurations (approval modes, presets, logs) between container runs, as no persistent storage is provided. This change aligns Linux Docker behavior with other environments and improves the overall developer experience.
Until the rust implementation will run stable with sandbox features for all OS, this improves the general experience for linux users with the containerized TS version until rust is ready.
How?
Manual Testing Steps:
Build the container:
Execute Codex CLI with config mounted:
Confirm that the mounted config is active (e.g., correct approval mode loaded).
Tested locally with success.
Checklist:
Implementation
Local testing:
pnpm test && pnpm lint && pnpm typecheck
-> Passed: logManual testing done:
~/.codex/config.yml
contains:model: o4-mini & approvalMode: suggest
, as you can see in the screenshot below the config is mounted and used correctly in the local conatiner run.Examples updated in run_in_container.sh
Open Question: