项目标题与描述
Arca(拉丁语意为“盒子”)是一个单容器、隔离的AI开发环境,具备增强的系统集成能力。该项目旨在提供一个自包含的开发环境,集成systemd服务、浏览器能力和AI智能体功能,实现从主机到Arca再到智能体运行时的完整工作流。
重要提示:由于涉及CVE-2025-31133、CVE-2025-52565、CVE-2025-52881等安全补丁以及Linux内核层面的修补,导致run-c和sysbox受到硬性限制。当前版本的Arca已暂停更新,建议在Ubuntu旧版本上使用。新版Arca正在开发中。
功能特性
- 单主机容器运行:保持主机环境清洁,无需挂载Docker套接字即可工作。
- 安全隔离容器:主机无需root权限,容器内可运行root进程,但主机层面仍为nobody用户。
- systemd集成:支持可恢复的守护进程运行。
- 即插即用镜像:包含预配置的运行时和智能体,显著缩短首次对话时间。
- 安全抽象浏览器接口:支持为每次对话提供独立的VSCode实例。
- 灵活的安全特性配置:默认禁用某些安全风险评分功能,支持根据需求轻松修改补丁目标。
- 一键启动:简化部署流程,快速启动完整环境。
版本支持
基于OpenHands提供两种部署变体:
gaia(标准版)
- 门户约1.5分钟可用
- 运行时约11分钟可用,需要网络连接
atlas(即插即用版)
- 门户3-4分钟可用
- 运行时约2分钟可用,无需网络连接
安装指南
系统要求
- Ubuntu Linux系统(推荐使用旧版本如24.04.02)
- 管理员权限(用于安装Docker和系统组件)
依赖安装
安装前需配置Docker环境:
#!/bin/bashset-ueoxpipefailSOURCE="./source"# 更新系统并安装基础工具sudoaptupdate-ysudoaptinstall-yca-certificatescurlgit# 添加Docker官方GPG密钥sudoinstall-m0755-d/etc/apt/keyringssudocurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg-o/etc/apt/keyrings/docker.ascsudochmoda+r /etc/apt/keyrings/docker.asc# 添加Docker仓库echo"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(./etc/os-release&&echo"${UBUNTU_CODENAME:-$VERSION_CODENAME}")stable"|\sudotee/etc/apt/sources.list.d/docker.list>/dev/nullsudoaptupdate-y# 清理现有Docker安装mv-f"${HOME}/.docker/""${HOME}/.docker.bak/"||truesudomv-f"/etc/docker/daemon.json""/etc/docker/daemon.json.bak"||truesudosystemctl stopdockerdocker.socket||truesudosystemctl disabledockerdocker.socket||truesudorm-rf"/var/run/docker.sock""${HOME}/.docker/"forpkgindocker.io docker-docdocker-composedocker-compose-v2 podman-docker containerd runc;dosudoapt-getremove"${pkg}";donesudoaptremove-ydocker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin||truesudoaptauto-remove-y# 安装Dockersudoapt-getinstall-ydocker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin# 配置用户组和权限sudogroupadddocker||truesudousermod-aGdocker"${USER}"||truesudosystemctlenable--nowdockersleep10sudochmod666"/var/run/docker.sock"sudosystemctl restartdockerSysbox安装与配置
#!/bin/bashset-ueoxpipefailSOURCE="./source"RELEASE="sysbox-ce_0.6.7.linux_amd64.deb"# 更新系统sudoaptupdate-ysudoaptinstall-yca-certificatescurlgit# 清理现有容器(Sysbox要求)dockerstop$(dockerps-a-q)||truedockerrm$(dockerps-a-q)||true# 卸载现有Sysboxsudosystemctl stop sysbox-fs.service sysbox-mgr.service sysbox.service||truesudosystemctl disable sysbox-fs.service sysbox-mgr.service sysbox.service||truesudoaptremove-ysysbox-ce||truesudoaptauto-remove-ysudoaptupdate-y# 安装Sysboxrm-rf"${SOURCE}/sysbox/"mkdir-p"${SOURCE}/sysbox/pkg/"curl-Lo"${SOURCE}/sysbox/pkg/${RELEASE}""https://github.com/nestybox/sysbox/releases/download/v0.6.7/${RELEASE}"ls"${SOURCE}/sysbox/pkg/${RELEASE}"|xargs-I{}sudoaptinstall-y"${SOURCE}/sysbox/pkg/${RELEASE}"# ZFS存储驱动补丁if[$(dockerinfo|grep"Storage Driver"|cut-d":"-f2|xargs-I{}echo{})=="zfs"];thensudoaptinstall-yvimmakebuild-essential golang-gomkdir-p"${SOURCE}/sysbox/git/"gitclone--recursivehttps://github.com/nestybox/sysbox.git"${SOURCE}/sysbox/git/"sed-i'/0x65735546/i\ 0x2fc12fc1: "zfs",'"${SOURCE}/sysbox/git/sysbox-libs/utils/fs.go"cd"${SOURCE}/sysbox/git"makesysbox-staticsudomakeinstallfi# 清理安装文件rm-rf"${SOURCE}/sysbox/"# 启动Sysbox服务sudosystemctlenable--nowsysbox-fs.service sysbox-mgr.service sysbox.servicesudosystemctl daemon-reloadsudosystemctl restartdocker使用说明
环境启动
安装完成后,使用Docker命令启动Arca容器环境。项目提供两种预配置镜像选择:gaia标准版或atlas即插即用版。
典型工作流程
- 环境初始化:根据需求选择版本,拉取对应镜像
- 服务启动:容器启动后自动初始化systemd服务
- 门户访问:通过浏览器访问提供的门户界面
- AI智能体交互:在隔离环境中运行和测试AI模型
- 开发调试:利用集成的VSCode进行代码编辑和调试
开发特性
- 独立工作空间:每次对话可创建独立的开发环境
- 系统服务管理:通过systemd管理后台进程
- 网络隔离:容器内网络与主机完全隔离
- 资源控制:可配置CPU、内存等资源限制
核心代码
Docker环境安装脚本
#!/bin/bashset-ueoxpipefailSOURCE="./source"# 系统更新与基础工具安装sudoaptupdate-ysudoaptinstall-yca-certificatescurlgit# Docker GPG密钥配置sudoinstall-m0755-d/etc/apt/keyringssudocurl-fsSLhttps://download.docker.com/linux/ubuntu/gpg-o/etc/apt/keyrings/docker.ascsudochmoda+r /etc/apt/keyrings/docker.asc# Docker仓库源配置echo"deb [arch=$(dpkg --print-architecture)signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(./etc/os-release&&echo"${UBUNTU_CODENAME:-$VERSION_CODENAME}")stable"|\sudotee/etc/apt/sources.list.d/docker.list>/dev/nullsudoaptupdate-y# 清理旧版Docker安装mv-f"${HOME}/.docker/""${HOME}/.docker.bak/"||truesudomv-f"/etc/docker/daemon.json""/etc/docker/daemon.json.bak"||truesudosystemctl stopdockerdocker.socket||truesudosystemctl disabledockerdocker.socket||truesudorm-rf"/var/run/docker.sock""${HOME}/.docker/"forpkgindocker.io docker-docdocker-composedocker-compose-v2 podman-docker containerd runc;dosudoapt-getremove"${pkg}";donesudoaptremove-ydocker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin||truesudoaptauto-remove-y# Docker组件安装sudoapt-getinstall-ydocker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin# 用户组权限配置sudogroupadddocker||truesudousermod-aGdocker"${USER}"||truesudosystemctlenable--nowdockersleep10sudochmod666"/var/run/docker.sock"sudosystemctl restartdockerSysbox安装与ZFS补丁脚本
#!/bin/bashset-ueoxpipefailSOURCE="./source"RELEASE="sysbox-ce_0.6.7.linux_amd64.deb"# 系统更新sudoaptupdate-ysudoaptinstall-yca-certificatescurlgit# 容器清理(Sysbox安装前提)dockerstop$(dockerps-a-q)||truedockerrm$(dockerps-a-q)||true# Sysbox服务停止与卸载sudosystemctl stop sysbox-fs.service sysbox-mgr.service sysbox.service||truesudosystemctl disable sysbox-fs.service sysbox-mgr.service sysbox.service||truesudoaptremove-ysysbox-ce||truesudoaptauto-remove-ysudoaptupdate-y# Sysbox包下载与安装rm-rf"${SOURCE}/sysbox/"mkdir-p"${SOURCE}/sysbox/pkg/"curl-Lo"${SOURCE}/sysbox/pkg/${RELEASE}""https://github.com/nestybox/sysbox/releases/download/v0.6.7/${RELEASE}"ls"${SOURCE}/sysbox/pkg/${RELEASE}"|xargs-I{}sudoaptinstall-y"${SOURCE}/sysbox/pkg/${RELEASE}"# ZFS存储驱动特别处理if[$(dockerinfo|grep"Storage Driver"|cut-d":"-f2|xargs-I{}echo{})=="zfs"];then# 构建工具安装sudoaptinstall-yvimmakebuild-essential golang-gomkdir-p"${SOURCE}/sysbox/git/"# 克隆Sysbox源码gitclone--recursivehttps://github.com/nestybox/sysbox.git"${SOURCE}/sysbox/git/"# 文件系统类型映射补丁(添加ZFS支持)sed-i'/0x65735546/i\ 0x2fc12fc1: "zfs",'"${SOURCE}/sysbox/git/sysbox-libs/utils/fs.go"# 编译并安装修改后的版本cd"${SOURCE}/sysbox/git"makesysbox-staticsudomakeinstallfi# 临时文件清理rm-rf"${SOURCE}/sysbox/"# Sysbox服务启用与重启sudosystemctlenable--nowsysbox-fs.service sysbox-mgr.service sysbox.servicesudosystemctl daemon-reloadsudosystemctl restartdocker6HFtX5dABrKlqXeO5PUv/8W9K7D4JpU7Uuh7rBoNUXo=
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)