Docker 沙盒
预览: Claude Code, Codex, Grok Build 和 Kimi Code 会议可用 在 Linux 和 macOS。 局部执行仍然可用,默认执行仍然可用。 审计周期在此预览中保持现有的本地运行时间。
AirCode Ø 将其控制平面保存在您的计算机或服务器上。 选择 Docker 沙盒 只将该直接代理会话移动到一个短寿命的工人容器。 它是为使用绕过权限的开发而设计的:代理可以写到所选的克隆项目,而不需要接收您的家用目录或 Docker 接口的其余部分。
Web / Desktop / mobile
↓
AirCode Ø API + auth + tunnel (host)
↓
Local tmux / Windows ConPTY OR one Docker worker per session
这是一个执行选项,而不是第二次集装箱化 AirCode Ø 安装。 身份验证,会话状态,通知,WebSockets,远程访问和UI在主机上。
选项显示的位置
- Web: 新会话 → 执行环境
- 桌面: 同一发射器,因为桌面嵌入 Web 工作台。
- 原生移动: 新会话 → 执行环境,持续每 已保存的服务器连接。
- API:
POST /api/sessions接受executionMode: "local" | "docker".
会议细节显示了有效的环境和形象。 服务器验证了戴蒙,图像和引擎;它从来没有默默地回到本地。
今天使用源预览
Docker 引擎或 Docker 桌面必须运行:
git clone https://github.com/spartaquant/aircode.git
cd aircode
npm run docker:runtime:build
npm run docker:runtime:check
npm run docker:session:smoke
重启 AirCode Ø,创建会话,然后选择 Docker 沙盒 在 执行环境中。 如果 Docker 或图像不可用,发射器会显示确切的原因,并且不会返回本地。
第一次构建后,支票将保持图像与其主机的步伐:当更新引入更新的 Claude Code, Codex, Grok Build 或 Kimi Code 版本或启用另一个包装的 CLI时, AirCode Ø 将重建 aircode-session-runtime:local 在背景中,而新的 Docker 会话使用当前版本和引擎列表。
在预览中,图像标签为 aircode-session-runtime:local。 标记产品发布版本构建和验证 linux/amd64 和 linux/arm64,发布不可变的 Docker Hub 版本标签,并在签署的 AirCode Ø 发布宣言中记录其数字。 单独的手动 Docker 工作流只发布 preview 频道。 配置了公共存储和发布凭据,但标签仅在首次成功发布后才会被拖放。
當公開標籤可用時,不需要 AirCode Ø 重建:
AIRCODE_DOCKER_IMAGE=aircodezero/session-runtime:<version> aircode
工人可以访问的内容
AirCode Ø 不会将存储库复制到图像中。 它将已克隆的项目安置在 中,同一个绝对路径 在工人内部。 因此,编辑会降落在实际支票中,并在容器离开后留下来。
| 山顶 | 接入 | 为什么 |
|---|---|---|
| 已选择的项目 | 读写器 | 代码,文件和 Git 支票 |
| 选择的发动机配置文件 | 读写器 | 身份验证、历史和原生简历 |
每期 /home/aircode |
读写器 | 私人临时住宅 |
/run/aircode 发射合同 |
只读 | 命令和初始提示 |
/tmp |
内存读写器 | 临时文件 |
不是 接收您的完整的家庭目录, Docker 接口或主机 Linux 功能。 根文件系统仅可读,而 AirCode Ø 适用于 PID、内存和 CPU 控制。
AirCode Ø的路由背 API 仍然是私密的。 一个稳定的、受功能保护的控制端口只接受工人自己的完成夹,包括桌面服务器重新启动后。
引擎配置文件包含凭证,并在预览中共享读写。 容器隔离保护了无关的主机文件;它不会使引擎凭据无法读取,也不会使引擎或与同一容器用户运行的恶意代码无法读取。
会话中发生的事情
- 客户端会读取主机的运行时间目录。
- 主机验证 Docker,图像合同和所选引擎。
- AirCode Ø 创建一个标记的工人和一个功能范围的调用 URL。
- 工人在安装项目中启动 tmux 。
- 现有的终端 WebSocket 通过 Docker驱动该 tmux 会话。
- 正常退出或杀死会话删除工作者,但留下项目更改 和引擎历史记录在主机上。
- 如果 AirCode Ø 重新启动,它会重新发现工人并恢复完成 电话回复。
VPN 和开发服务器流量
集装箱进程通常遵循 Docker主机路由和 NAT 规则。 主机 VPN 仅在 VPN 包含 Docker 桥梁流量时才能携带它。 管理的Hetzner/AirCode Ø 隧道是用于进入 AirCode Ø 控制平面;它不会自动路由工人退出。
| 交通 | 路线 |
|---|---|
| 手机/浏览器 → AirCode Ø | LAN, VPN 或 Hetzner 隧道 → 主机 |
| 终端 → 工人 | 主机 → Docker API → 工人 tmux |
| 代理 API/Git 流量 | Docker 桥/NAT → 主机 VPN 政策 → 互联网 |
| 工人完成的钩子 | 工人 → 受保护的主机召回端口 |
目前尚未发布任何工人端口。 通过 AirCode Ø 和 Hetzner 路线进行验证的开发服务器转发是下一个网络增量。 局部 AirCode Ø 会话和现有的远程访问继续保持不变。
预览限制
- Claude Code, Codex, Grok Build 和 Kimi Code 包装和可用 普通 Docker 会话。 缺少、不可读或过时的版本仍然存在 发射前关闭故障。
- 直接会话被覆盖。 经过审计的周期继续使用本地执行。
- Linux 和 macOS 主机是目标。 Windows 桌面保持本地 ConPTY 局部 会话; Docker 路径语法尚未在那里获得认证。
- 主机浏览器功能和外部代币优化包装器不 注射到工人还没有。
配置
| 环境变量 | config.json |
默认 | 用途 |
|---|---|---|---|
AIRCODE_DEFAULT_EXECUTION_MODE |
defaultExecutionMode |
local |
默认发射器环境 |
AIRCODE_DOCKER_ENABLED |
dockerEnabled |
true |
Docker 功能交换机 |
AIRCODE_DOCKER_BIN |
dockerBin |
docker |
Docker CLI |
AIRCODE_DOCKER_IMAGE |
dockerImage |
aircode-session-runtime:local |
工人图像 |
AIRCODE_DOCKER_NETWORK |
dockerNetwork |
aircode-runtime |
专用桥梁 |
AIRCODE_DOCKER_CONTROL_PORT |
dockerControlPort |
AirCode Ø 端口 + 1000 | 容量范围的吊桥 |
AIRCODE_DOCKER_ENGINES |
dockerEngines |
claude,codex,grok,kimi |
Fallback 常规会话引擎列表为传统/自定义图像 |
AIRCODE_DOCKER_PIDS_LIMIT |
dockerPidsLimit |
512 |
每名工人 PID 限制 |
AIRCODE_DOCKER_MEMORY |
dockerMemory |
8g |
每位工作者内存限制 |
AIRCODE_DOCKER_CPUS |
dockerCpus |
不设定 | 可选 CPU 限制 |
在工作者运行时,保持回调端口稳定。 请参阅 故障排除 的运行时错误代码。
Docker 戴蒙仍然是值得信赖的主机组件。 任何控制这种戴蒙的人都可以绕过容器隔离。