项目技术书
============================================================
项目计划书:基于 Alpine Linux 的 AI 编程镜像构建
============================================================
一、 项目概况
------------------------------------------------------------
本项目的目标是在 VMware 虚拟机中,基于 Alpine Linux 构建一个高度集成的
Docker 镜像。该镜像将整合 OpenCode 与 Oh-OpenAgent,旨在提供一个轻量、
可持久化配置、且能够随官方发布持续迭代的 AI 开发环境。
二、 核心设计方案
------------------------------------------------------------
1. 基础底座
- 宿主机 VM:VMware 运行 Alpine Linux (Virt 内核),确保最小开销。
- 容器环境:Docker + Docker-compose。
2. 镜像构建策略 (Dockerfile)
- 采用多阶段构建,基础镜像选用 alpine:latest。
- 环境集成:安装 Python3, Node.js, Git 及 gcompat 兼容库。
- 组件部署:通过部署手册自动化安装 OpenCode 与 Oh-OpenAgent。
3. 持久化与映射设计 (docker-compose.yml)
为了保证容器在升级迭代时配置不丢失,采用以下映射方案:
- 配置映射:./config/opencode -> /root/.config/opencode
- 代理映射:./config/agent -> /app/agent/config
- 工作空间:./workspace -> /app/workspace
- 日志存储:./logs -> /var/log/ai-tools
三、 实施阶段规划
------------------------------------------------------------
第一阶段:环境准备 (VM 搭建)
- 安装 Alpine 操作系统,开启社区仓库。
- 完成 Docker 引擎及 Docker-compose 的安装与自启配置。
第二阶段:镜像开发 (Dockerfile 编写)
- 编写构建脚本,处理 Alpine 环境下的 C++ 依赖与编译问题。
- 集成 OpenCode 与 Oh-OpenAgent 的配置文件模版。
第三阶段:联调测试 (持久化验证)
- 运行 docker-compose,测试宿主机与容器间的文件同步。
- 验证 Agent 与 OpenCode 之间的网络通信。
第四阶段:迭代机制 (持续维护)
- 建立版本变量化机制,通过修改 ARG 参数快速构建新版镜像。
- 设定镜像 Tag 规范(如:v1-oc0.5.1),实现版本追溯。
四、 技术要点与风险控制
------------------------------------------------------------
1. 兼容性:Alpine 使用 musl libc,需重点测试二进制组件的运行情况,必要时
使用 build-base 进行本地编译。
2. 资源管理:虽然 Alpine 轻量,但 AI 运行需预留足够内存(建议 4GB+)。
3. 自动化:通过编写 build.sh 脚本,实现“官方发布 -> 修改版本号 -> 一键
重新打包”的流水线作业。
五、 交付成果清单
------------------------------------------------------------
1. Dockerfile (镜像定义文件)
2. docker-compose.yml (多服务启动配置文件)
3. entrypoint.sh (容器初始化与环境检查脚本)
4. .env.example (环境变量示例文件)
============================================================
计划书编制日期:2026-04-18
============================================================制作oc 1.4.11镜像
包内容
alpine-virt-3.23.4-x86_64.iso curl -fsSL https://opencode.ai/install | bash -s -- -v 1.4.11 bunx oh-my-opencode@3.17.4 install --no-tui --claude=no --openai=no --gemini=no --copilot=no --opencode-zen=no --skip-auth