项目标题与描述

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/bash
set -ueox pipefail
SOURCE="./source"

# 更新系统并安装基础工具
sudo apt update -y
sudo apt install -y ca-certificates curl git

# 添加Docker官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+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" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update -y

# 清理现有Docker安装
mv -f "${HOME}/.docker/" "${HOME}/.docker.bak/" || true
sudo mv -f "/etc/docker/daemon.json" "/etc/docker/daemon.json.bak" || true
sudo systemctl stop docker docker.socket || true
sudo systemctl disable docker docker.socket || true
sudo rm -rf "/var/run/docker.sock" "${HOME}/.docker/"
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc;
  do sudo apt-get remove "${pkg}";
done
sudo apt remove -y docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin || true
sudo apt auto-remove -y

# 安装Docker
sudo apt-get install -y docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin

# 配置用户组和权限
sudo groupadd docker || true
sudo usermod -aG docker "${USER}" || true
sudo systemctl enable --now docker
sleep 10
sudo chmod 666 "/var/run/docker.sock"
sudo systemctl restart docker

Sysbox安装与配置

#!/bin/bash
set -ueox pipefail
SOURCE="./source"
RELEASE="sysbox-ce_0.6.7.linux_amd64.deb"

# 更新系统
sudo apt update -y
sudo apt install -y ca-certificates curl git

# 清理现有容器(Sysbox要求)
docker stop $(docker ps -a -q) || true
docker rm $(docker ps -a -q) || true

# 卸载现有Sysbox
sudo systemctl stop sysbox-fs.service sysbox-mgr.service sysbox.service || true
sudo systemctl disable sysbox-fs.service sysbox-mgr.service sysbox.service || true
sudo apt remove -y sysbox-ce || true
sudo apt auto-remove -y
sudo apt update -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 {} sudo apt install -y "${SOURCE}/sysbox/pkg/${RELEASE}"

# ZFS存储驱动补丁
if [ $(docker info | grep "Storage Driver" | cut -d ":" -f 2 | xargs -I {} echo {}) == "zfs" ]; then
  sudo apt install -y vim make build-essential golang-go
  mkdir -p "${SOURCE}/sysbox/git/"
  git clone --recursive https://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"
  make sysbox-static
  sudo make install
fi

# 清理安装文件
rm -rf "${SOURCE}/sysbox/"

# 启动Sysbox服务
sudo systemctl enable --now sysbox-fs.service sysbox-mgr.service sysbox.service
sudo systemctl daemon-reload
sudo systemctl restart docker

使用说明

环境启动

安装完成后,使用Docker命令启动Arca容器环境。项目提供两种预配置镜像选择:gaia标准版或atlas即插即用版。

典型工作流程

  1. 环境初始化:根据需求选择版本,拉取对应镜像
  2. 服务启动:容器启动后自动初始化systemd服务
  3. 门户访问:通过浏览器访问提供的门户界面
  4. AI智能体交互:在隔离环境中运行和测试AI模型
  5. 开发调试:利用集成的VSCode进行代码编辑和调试

开发特性

  • 独立工作空间:每次对话可创建独立的开发环境
  • 系统服务管理:通过systemd管理后台进程
  • 网络隔离:容器内网络与主机完全隔离
  • 资源控制:可配置CPU、内存等资源限制

核心代码

Docker环境安装脚本

#!/bin/bash
set -ueox pipefail
SOURCE="./source"

# 系统更新与基础工具安装
sudo apt update -y
sudo apt install -y ca-certificates curl git

# Docker GPG密钥配置
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+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" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update -y

# 清理旧版Docker安装
mv -f "${HOME}/.docker/" "${HOME}/.docker.bak/" || true
sudo mv -f "/etc/docker/daemon.json" "/etc/docker/daemon.json.bak" || true
sudo systemctl stop docker docker.socket || true
sudo systemctl disable docker docker.socket || true
sudo rm -rf "/var/run/docker.sock" "${HOME}/.docker/"
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc;
  do sudo apt-get remove "${pkg}";
done
sudo apt remove -y docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin || true
sudo apt auto-remove -y

# Docker组件安装
sudo apt-get install -y docker-ce docker-ce-cli docker-buildx-plugin docker-compose-plugin

# 用户组权限配置
sudo groupadd docker || true
sudo usermod -aG docker "${USER}" || true
sudo systemctl enable --now docker
sleep 10
sudo chmod 666 "/var/run/docker.sock"
sudo systemctl restart docker

Sysbox安装与ZFS补丁脚本

#!/bin/bash
set -ueox pipefail
SOURCE="./source"
RELEASE="sysbox-ce_0.6.7.linux_amd64.deb"

# 系统更新
sudo apt update -y
sudo apt install -y ca-certificates curl git

# 容器清理(Sysbox安装前提)
docker stop $(docker ps -a -q) || true
docker rm $(docker ps -a -q) || true

# Sysbox服务停止与卸载
sudo systemctl stop sysbox-fs.service sysbox-mgr.service sysbox.service || true
sudo systemctl disable sysbox-fs.service sysbox-mgr.service sysbox.service || true
sudo apt remove -y sysbox-ce || true
sudo apt auto-remove -y
sudo apt update -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 {} sudo apt install -y "${SOURCE}/sysbox/pkg/${RELEASE}"

# ZFS存储驱动特别处理
if [ $(docker info | grep "Storage Driver" | cut -d ":" -f 2 | xargs -I {} echo {}) == "zfs" ]; then
  # 构建工具安装
  sudo apt install -y vim make build-essential golang-go
  mkdir -p "${SOURCE}/sysbox/git/"
  
  # 克隆Sysbox源码
  git clone --recursive https://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"
  make sysbox-static
  sudo make install
fi

# 临时文件清理
rm -rf "${SOURCE}/sysbox/"

# Sysbox服务启用与重启
sudo systemctl enable --now sysbox-fs.service sysbox-mgr.service sysbox.service
sudo systemctl daemon-reload
sudo systemctl restart docker

6HFtX5dABrKlqXeO5PUv/8W9K7D4JpU7Uuh7rBoNUXo=
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐