From 8b5f440e53aa4a974a2fd782a6678decc3e5e63f Mon Sep 17 00:00:00 2001 From: enoch Date: Tue, 23 Jun 2026 00:29:20 +0800 Subject: [PATCH] Add mise language manager to dev images - 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 --- vibe-dev/Dockerfile.fedora | 7 ++++++- vibe-dev/Dockerfile.ubuntu | 9 +++++++-- vibe-dev/Makefile | 1 + vibe-dev/README.md | 1 + vibe-dev/compose.yml | 3 +++ 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/vibe-dev/Dockerfile.fedora b/vibe-dev/Dockerfile.fedora index c86ad96..e9c9c68 100644 --- a/vibe-dev/Dockerfile.fedora +++ b/vibe-dev/Dockerfile.fedora @@ -6,6 +6,7 @@ RUN dnf update -y && dnf install -y \ gcc gcc-c++ make cmake openssl-devel jq tmux vim \ zsh sudo python3 python3-pip \ openssh-server tar gzip \ + postgresql redis mariadb \ && dnf clean all @@ -29,7 +30,11 @@ RUN curl -fsSL https://go.dev/dl/go1.24.4.linux-amd64.tar.gz | tar -C /usr/local # 4. 全局安装 AI 工具 (Vibe Coding 核心: opencode + oh-my-pi) RUN bun install -g opencode-ai @oh-my-pi/pi-coding-agent -# 5. SSH & ZSH 配置 +# 5. 安装 mise (多语言版本管理器,用于按需管理 Node/Python/Ruby 等) +RUN curl -fsSL https://mise.run | MISE_INSTALL_PATH=/usr/local/bin/mise sh \ + && echo 'eval "$(mise activate zsh)"' >> /root/.zshrc + +# 6. SSH & ZSH 配置 RUN ssh-keygen -A && \ mkdir -p /root/.zed /root/.local/share/zed && \ sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config diff --git a/vibe-dev/Dockerfile.ubuntu b/vibe-dev/Dockerfile.ubuntu index ca22397..010525f 100644 --- a/vibe-dev/Dockerfile.ubuntu +++ b/vibe-dev/Dockerfile.ubuntu @@ -5,6 +5,7 @@ RUN apt-get update && apt-get install -y \ curl git wget unzip procps tar gzip shellcheck vim \ gcc g++ make cmake libssl-dev tmux jq \ zsh sudo python3 python3-pip openssh-server \ + postgresql-client redis-tools default-mysql-client \ && apt-get clean && rm -rf /var/lib/apt/lists/* # 2. 环境变量 @@ -26,13 +27,17 @@ RUN curl -fsSL https://go.dev/dl/go1.24.4.linux-amd64.tar.gz | tar -C /usr/local # 4. 全局安装 AI 工具 (opencode + oh-my-pi) RUN bun install -g opencode-ai @oh-my-pi/pi-coding-agent -# 5. SSH & 目录预设 (为 Zed 准备) +# 5. 安装 mise (多语言版本管理器,用于按需管理 Node/Python/Ruby 等) +RUN curl -fsSL https://mise.run | MISE_INSTALL_PATH=/usr/local/bin/mise sh \ + && echo 'eval "$(mise activate zsh)"' >> /root/.zshrc + +# 6. SSH & 目录预设 (为 Zed 准备) RUN ssh-keygen -A && \ mkdir -p /root/.zed /root/.local/share/zed && \ sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -i 's/#PermitUserEnvironment no/PermitUserEnvironment yes/' /etc/ssh/sshd_config -# 6. Shell 美化 +# 7. Shell 美化 RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended # 接收来自 compose 的参数 diff --git a/vibe-dev/Makefile b/vibe-dev/Makefile index 9e41d64..861c647 100644 --- a/vibe-dev/Makefile +++ b/vibe-dev/Makefile @@ -69,6 +69,7 @@ check: @docker exec -it $(CONTAINER_NAME) bun --version || echo "❌ Bun 未就绪" @docker exec -it $(CONTAINER_NAME) opencode version || echo "❌ OpenCode 未就绪" @docker exec -it $(CONTAINER_NAME) omp --version || echo "❌ Oh My Pi 未就绪" + @docker exec -it $(CONTAINER_NAME) mise --version || echo "❌ mise 未就绪" @echo "✨ 自检完成!" add-key: diff --git a/vibe-dev/README.md b/vibe-dev/README.md index 7a93813..12777e3 100644 --- a/vibe-dev/README.md +++ b/vibe-dev/README.md @@ -104,6 +104,7 @@ omp --model anthropic/sonnet-4.5 * **Bun 依赖加速**:`bun-cache` 避免了重复下载 node_modules 依赖。 * **Zed 启动加速**:`zed-server` 卷缓存了远程后端二进制文件。 * **工具持久化**:通过 `bun -g` 安装的工具在容器重建后依然可用。 +* **mise 语言版本**:`mise-data` 卷保留了通过 `mise use` 安装的 Node/Python/Ruby 等语言版本。 ## 🧹 常用维护命令 diff --git a/vibe-dev/compose.yml b/vibe-dev/compose.yml index 5ecbc75..5a5ecdf 100644 --- a/vibe-dev/compose.yml +++ b/vibe-dev/compose.yml @@ -33,6 +33,8 @@ services: - zed-share:/root/.local/share/zed # --- 新增:Oh My Pi 配置/记忆/OAuth 登录态持久化 --- - omp-data:/root/.omp + # --- 新增:mise 多语言版本管理器数据持久化 --- + - mise-data:/root/.local/share/mise stdin_open: true tty: true restart: always @@ -45,3 +47,4 @@ volumes: zed-server: zed-share: omp-data: + mise-data: