Codex避孕套(波德曼+Fedora)
使用核心开发工具为每个工作区提供可重用的基于Fedora的Podman环境,Python uv和Node.js。每个工作区都有一个确定的环境名称和自己的主目录,以实现干净的隔离。缓存的本地映像 localhost/codex:latest 减少了新工作区的启动时间。
特性
- 每个工作区的家
~/codex_condoms/{slug-hash} - 主机主机被屏蔽,因此只有专用主机和显式挂载可见
- 工作区路径中的确定性环境名称(slug+短散列)
- 工作空间安装在集装箱内
$HOME/workspace ~/.codex挂载读写以保留Codex身份验证和MCP配置(内部挂载为$HOME/.codex)- Python 3+构建deps和
uv(预装在映像中);Node.js+npm;常用开发工具 - 代理上下文已写入
$HOME/.config/codex/env集装箱内
需求
podman- 互联网接入构建基础形象
快速开始
启动工作区环境(图像是在首次运行时生成的):
codexcondom /abs/path/to/workspace用法
codexcondom [/abs/path/to/workspace] [options]选项:
--image IMG--缓存版本的基本Fedora映像(默认值:registry.fedoraproject.org/fedora:latest)--name NAME--覆盖环境名称--recreate-container--重新创建环境(不重建映像)--rebuild-image--重建没有缓存的缓存映像--recreate-homedir--擦除并重新创建每个工作区的主目录--total-rebuild--与--rebuild-image --recreate-container --recreate-homedir--no-mask-host-home--不要将主机隐藏在容器内--bash--启动交互式bash而不是codex
示例:
# Open a bash shell instead of codex
codexcondom /abs/path --bash
# Rebuild the base image from scratch (on next run)
codexcondom /abs/path --rebuild-image
# Fully reset everything for this workspace before launching
codexcondom /abs/path --total-rebuild什么被配置
- 从工作区路径派生的环境名称
- 每个工作区的家
~/codex_condoms/{slug-hash}主人家蒙面 - 支架:
- 工作区→ $HOME/workspace (使用匹配的UID/GID进行读写) - ~/.codex → $HOME/.codex (读写;如果缺少,则在主机上创建)
- 缓存映像预安装开发包、Python和Node.js
uv已预安装,可在PATH上作为uv- 将代理上下文写入
$HOME/.config/codex/env
安装(简短)
单行线(非交互式):
curl -fsSL https://raw.githubusercontent.com/dkolb/codex-condom/main/install.sh | bash或者从克隆的仓库中:
./install.sh- 安装
codexcondom向~/.local/bin在你的家(或/root如果以root身份运行) - 将运行时容器文件复制到
~/.local/share/codexcondoms/ - 提示添加
~/.local/bin在交互时切换到PATH;如果丢失,则发出警告
安全说明
此环境故意不挂载主机Docker套接字。不支持在容器内运行Docker命令以降低风险。
Python、uv和Node.js
- Python 3和常见的构建依赖项安装在基础映像中
uv已预安装,可在PATH上作为uv- Node.js和npm来自Fedora软件包(版本取决于图片)
安装 ~/.codex
~/.codex 始终以读写方式挂载,如果丢失,则在主机上创建。这确保了Codex可以登录、刷新令牌,并在会话之间持久化MCP配置。
集装箱内部
- 工作区根目录:
$HOME/workspace - 代理环境文件:
$HOME/.config/codex/env(键=值线)
- 包括: CODEX_CONTAINER_NAME, CODEX_HOME, CODEX_WORKSPACE_DIR - 符号链接 $HOME/.codex → $HOME/.config/codex 用于传统工具
调试:
- 集
CODEX_CONDOM_DEBUG=1启用详细日志和podman输出
故障排除
- SELinux:
:z应用于工作空间和.codex安装兼容性 - 版本:Python/Node版本跟踪Fedora映像;根据需要提供引脚特定版本
清理
删除持久容器和每个工作区的主页:
podman rm -f
rm -rf ~/codex_condoms/{slug-hash}