- Install mise and activate it in root's zshrc in Fedora and Ubuntu - Add mise-data volume and mount at /root/.local/share/mise - Add mise --version check to the Makefile self-check target - Document mise-data volume in README - Add DB packages: postgresql/redis/mariadb to Fedora and postgresql-client/redis-tools/default-mysql-client to Ubuntu
126 lines
3.8 KiB
Markdown
126 lines
3.8 KiB
Markdown
# 🛸 Vibe Coding 环境使用指南
|
||
|
||
这是一个深度集成了 **Rust**、**Bun** 和 **AI 助手** 的全自动化开发环境,专为追求“极速、丝滑、AI 优先”的开发者设计。
|
||
|
||
---
|
||
|
||
## 🛠️ 第一步:初始化与启动
|
||
|
||
在宿主机(你的个人电脑)上执行以下操作:
|
||
|
||
1. **准备配置文件**:
|
||
将提供的 `Dockerfile`、`docker-compose.yml`、`entrypoint.sh` 和 `.env.example` 放入项目根目录。
|
||
2. **配置密钥**:
|
||
```bash
|
||
cp .env.example .env
|
||
# 修改 .env,填入你的 Anthropic/OpenAI/OpenCode API Keys
|
||
|
||
```
|
||
|
||
|
||
3. **一键构建并启动**:
|
||
```bash
|
||
docker compose up -d --build
|
||
|
||
```
|
||
|
||
|
||
|
||
---
|
||
|
||
## 🎨 第二步:配置 Zed 远程连接
|
||
|
||
Zed 是 Vibe Coding 的绝佳拍档,其极低的响应延迟能让你感受到 AI 实时生成的快感。
|
||
|
||
1. **修改宿主机 SSH 配置**:
|
||
在你的本地终端编辑 `~/.ssh/config`,添加以下内容:
|
||
```text
|
||
Host vibe
|
||
HostName localhost
|
||
User root
|
||
Port 2222
|
||
IdentityFile ~/.ssh/id_rsa # 指向你的私钥
|
||
|
||
```
|
||
|
||
|
||
2. **在 Zed 中打开**:
|
||
* 启动 Zed。
|
||
* 唤起命令面板 (`Cmd/Ctrl + Shift + P`)。
|
||
* 输入 `Remote Projects: Open Remote Project` 并选择 `vibe`。
|
||
* 路径选择 `/workspace`。
|
||
|
||
|
||
|
||
---
|
||
|
||
## 🤖 第三步:开启 Vibe Coding 工作流
|
||
|
||
环境启动后,所有的 AI 交互都在 **Zed 的内置终端** 中进行。
|
||
|
||
|
||
### 使用 OpenCode (快速指令与辅助)
|
||
|
||
如果想通过简单的指令快速调整代码:
|
||
|
||
```bash
|
||
# 登录 (仅需首次)
|
||
opencode auth login
|
||
|
||
# 执行任务
|
||
opencode "优化当前目录下 main.rs 的错误处理逻辑"
|
||
|
||
```
|
||
|
||
### 使用 Oh My Pi (交互式 AI Coding Agent)
|
||
|
||
[oh-my-pi](https://github.com/can1357/oh-my-pi)(命令名 `omp`)是一个终端优先的 AI Coding Agent,内置 LSP / DAP / 浏览器 / 子代理 / Hindsight 记忆等能力,与 Zed 通过 ACP 协议深度集成。
|
||
|
||
```bash
|
||
# 首次使用:登录某个 provider (Anthropic / OpenAI / Codex / Cursor 等)
|
||
omp /login
|
||
|
||
# 交互式启动 (默认进入 TUI)
|
||
omp
|
||
|
||
# 单次指令模式
|
||
omp -p "为当前 Cargo 项目补全 unit test"
|
||
|
||
# 指定模型
|
||
omp --model anthropic/sonnet-4.5
|
||
|
||
```
|
||
|
||
* 配置与登录态保存在 `/root/.omp`(已挂载为命名卷 `omp-data`),`docker compose down` 后不会丢失。
|
||
* 若已在 `.env` 中配置了 `ANTHROPIC_API_KEY` / `OPENAI_API_KEY`,omp 会自动识别,可跳过 `/login`。
|
||
|
||
---
|
||
|
||
## 🚀 性能说明
|
||
|
||
该环境通过 **Named Volumes (命名卷)** 实现了四重加速,即使运行 `docker compose down` 后再重启,以下内容也不会丢失:
|
||
|
||
* **Rust 编译加速**:`cargo-cache` 卷保留了所有已下载的第三方库。
|
||
* **Bun 依赖加速**:`bun-cache` 避免了重复下载 node_modules 依赖。
|
||
* **Zed 启动加速**:`zed-server` 卷缓存了远程后端二进制文件。
|
||
* **工具持久化**:通过 `bun -g` 安装的工具在容器重建后依然可用。
|
||
* **mise 语言版本**:`mise-data` 卷保留了通过 `mise use` 安装的 Node/Python/Ruby 等语言版本。
|
||
|
||
|
||
## 🧹 常用维护命令
|
||
|
||
| 任务 | 命令 |
|
||
| --- | --- |
|
||
| **彻底重启环境** | `docker compose restart` |
|
||
| **更换基础镜像 (OS)** | 修改 `docker-compose.yml` 中的 `dockerfile` 后运行 `docker compose up --build` |
|
||
| **清理所有构建缓存** | `docker compose down -v` (警告:这将清空 Cargo/Bun 缓存) |
|
||
|
||
|
||
## ❓ 常见问题排查
|
||
|
||
* **SSH 连接被拒绝**:请检查 `docker ps` 确保容器正在运行,且端口 `2222` 已映射。
|
||
* **Zed 连接极慢**:由于我们配置了 `zed-server` 卷,只有第一次连接会下载,后续应该是秒开。如果一直慢,请检查宿主机的网络能否访问 Zed 的下载服务器。
|
||
* **权限问题**:如果在宿主机手动删除了某些文件导致容器内报错,尝试运行 `chown -R root:root .`。
|
||
|
||
|