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 戴蒙仍然是值得信賴的主機組件。 任何控制這種戴蒙的人都可以繞過容器隔離。