v1.1.0: Alpine 轻量级 Docker 开发环境 + 敏感凭证清理

This commit is contained in:
lxy
2026-07-27 13:59:18 +08:00
parent feb76081a0
commit ccca0fa62b
51 changed files with 6125 additions and 993 deletions
+47 -118
View File
@@ -1,138 +1,67 @@
# WorkPod 开发环境容器
# WorkPod Alpine
全栈开发环境,包含 Ubuntu + Python + Go + Rust + Node + MySQL + Redis + Claude Code + OpenClaw
轻量级 Docker 开发环境容器 — 基于 Alpine Linux 3.23,镜像仅 ~436MB。
## 核心特性
| 特性 | 说明 |
|------|------|
| **镜像大小** | ~436MBUbuntu 版的 1/6 |
| **基础镜像** | alpine:3.23 (~7MB) |
| **运行时内存** | 80-120MB 基线 + 应用 |
| **启动时间** | ~2.5 秒 |
| **Web 终端** | ttyd + tmux 会话管理 |
| **AI 工具** | Claude Code + coding-helper |
## 快速开始
```bash
# 构建镜像
cd E:/wk-lab/workpod
docker build -t workpod:latest .
# 构建基础镜像
docker build -t workpod-alpine:latest .
# 启动容器
docker-compose up -d
# 启动基础实例
docker compose up -d
# 查看日志
docker logs -f workpod
# 进入容器
docker exec -it workpod bash
# 访问
# Web: http://localhost:7681 (用户 jc / 密码 1234567)
# SSH: ssh root@localhost -p 2222 (密码 workpod123)
```
## SSH 连接
## 项目实例部署
```bash
ssh root@localhost -p 2222
# 密码: workpod123
# Flux 项目(含 JDK/Maven 挂载)
docker compose -f docker-compose.flux.yml up -d
# 备用编排
docker compose -f docker-compose-alpine.yml up -d
```
## 端口映射
## 端口规划
| 服务 | 宿主机端口 | 容器端口 |
|------|-----------|---------|
| SSH | 2222 | 22 |
| HTTP | 8080 | 80 |
| HTTPS | 8443 | 443 |
| MySQL | 13306 | 3306 |
| Redis | 16379 | 6379 |
| 实例 | SSH | Web 终端 | 用途 |
|------|-----|---------|------|
| workpod-alpine (基础) | 2222 | 7681 | 通用开发 |
| ws-flux-dev | 2201 | 7701 | Flux 项目 |
## 启动数据库服务
```bash
# MySQL
docker exec workpod bash -c "mysqld --user=mysql --datadir=/var/lib/mysql &"
# Redis
docker exec workpod redis-server --daemonize yes
```
## 已安装工具
| 工具 | 版本 | 说明 |
|------|------|------|
| Python | 3.10 | pip, venv |
| Node.js | 24.14.0 | npm, pnpm, yarn |
| Go | 1.26.1 | |
| Rust | 1.94.0 | cargo |
| MySQL | 8.0 | 手动启动 |
| Redis | 6.0 | 手动启动 |
| Claude Code | 2.1.79 | AI 编程工具 |
| OpenClaw | 2026.3.13 | AI 网关 |
## 镜像导出/导入
### 导出镜像
```bash
# 导出为 tar 文件
docker save workpod:latest | gzip > workpod.tar.gz
# 或不压缩
docker save workpod:latest -o workpod.tar
```
### 导入镜像
```bash
# 从 tar.gz 导入
docker load < workpod.tar.gz
# 或从 tar 导入
docker load -i workpod.tar
```
### 迁移到服务器
```bash
# 1. 本机导出
docker save workpod:latest | gzip > workpod.tar.gz
# 2. 传输到服务器
scp workpod.tar.gz user@server:/path/
# 3. 服务器导入
ssh user@server
docker load < /path/workpod.tar.gz
# 4. 复制 docker-compose.yml 到服务器并启动
docker-compose up -d
```
## 数据持久化
数据存储在 `E:/docker-data/workpod/` 目录:
- `mysql/` - MySQL 数据
- `redis/` - Redis 数据
- `workspace/` - 工作空间
## 配置文件
## 目录结构
```
E:/wk-lab/workpod/
├── Dockerfile # 镜像构建配置
├── docker-compose.yml # 容器编排配置
├── entrypoint.sh # 入口脚本
├── download-packages.ps1 # 软件包下载脚本
├── PACKAGES.md # 软件包清单
├── SPECS.md # 技术规格说明书
── README.md # 说明文档
workpod/
├── Dockerfile # 基础镜像(多阶段构建)
├── Dockerfile.flux # Flux 扩展镜像
├── entrypoint.sh # 容器入口(PATH 自检 + 服务启动)
├── ttyd-session.sh # tmux 会话管理
├── auth-proxy.js # 认证代理(可选)
├── download-packages.sh # 离线包下载
── docker-compose*.yml # 编排文件
├── dev-envs/ # 开发环境配置模板
├── instances/ # 实例编排(模板化部署)
├── config/ # 配置文件
├── docs/ # 文档
└── SPECS.md # 技术规格(完整版)
```
## 常用命令
## 技术规格
```bash
# 停止容器
docker-compose down
# 重启容器
docker-compose restart
# 查看容器状态
docker ps --filter name=workpod
# 进入容器执行命令
docker exec -it workpod bash
# 查看容器资源使用
docker stats workpod
```
详见 [SPECS.md](./SPECS.md)