Files
brunoandClaude cbe172508e 优化 Docker 构建并实现端口分段管理
## 主要改进

### 1. Docker 镜像构建加速(30 倍速度提升)
**后端 (Dockerfile.prod):**
- 添加 Debian 中科大镜像源 (mirrors.ustc.edu.cn)
- 速度提升:67s → 2s (146 KB/s → 4590 KB/s)
- 配置 Docker 基础镜像缓存服务器 (host.docker.internal:15001)
- 多阶段构建:builder + runtime 分离

**前端 (Dockerfile):**
- 添加 Alpine 中科大镜像源
- 配置 npm 淘宝镜像 (registry.npmmirror.com)
- BuildKit 缓存挂载优化

### 2. 端口分段管理(PORT_GUIDE.md)
实现三种部署方式的端口隔离,方便并行运行:

| 部署方式 | 后端 | 前端 | PostgreSQL | Redis | Nginx |
|---------|------|------|------------|-------|-------|
| 本地开发 | 5115 | 6115 | - | - | - |
| Docker Compose | 15115 | 16115 | 15432 | 16379 | 18080 |
| Kubernetes | 25115 | 26115 | 25432 | 26379 | - |

### 3. 环境配置文件
- `.env.prod` - Docker Compose 配置(1xxxx 端口段)
- `.env.k8s` - Kubernetes 配置(2xxxx 端口段)
- `PORT_GUIDE.md` - 端口规划说明文档

### 4. BuildKit 配置 (buildkitd.toml)
- 配置 insecure registry 支持
- 允许从本地缓存服务器拉取镜像
- 支持 localhost:15001, localhost:15000, host.docker.internal:15001

### 5. Docker Compose 优化
- 修改网络子网为 172.28.0.0/16(避免冲突)
- 调整端口映射使用 1xxxx 段
- 传递 REGISTRY_CACHE 构建参数

### 6. 忽略文件更新 (.gitignore)
- 添加 logs/ 目录到 .gitignore

## 技术细节

**镜像加速对比:**
- Debian 软件源:deb.debian.org → mirrors.ustc.edu.cn
- pip 包:pypi.org → mirrors.ustc.edu.cn
- npm 包:registry.npmjs.org → registry.npmmirror.com
- Docker 基础镜像:registry-1.docker.io → localhost:15001 缓存

**构建成功验证:**
- 后端镜像:localhost:15000/fastapi-template-backend:latest (657MB)
- 前端镜像:localhost:15000/fastapi-template-frontend:latest (56.2MB)
- 所有服务健康检查通过

## 文件清单
- backend/Dockerfile.prod (优化:Debian 镜像源)
- frontend/Dockerfile (优化:Alpine 镜像源 + npm 配置)
- docker-compose.prod.yml (端口调整 + 网络配置)
- .env.prod (Docker Compose 环境配置)
- .env.k8s (Kubernetes 环境配置)
- buildkitd.toml (BuildKit insecure registry 配置)
- PORT_GUIDE.md (端口规划说明文档)
- .gitignore (忽略 logs 目录)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-01 16:13:59 +08:00
..
2025-11-28 22:38:37 +08:00
2025-11-28 22:38:37 +08:00
2025-11-29 12:54:33 +08:00
2025-11-28 22:38:37 +08:00
2025-11-29 08:45:50 +08:00
2025-11-29 12:54:33 +08:00
2025-11-28 22:38:37 +08:00
2025-11-29 08:45:50 +08:00
2025-11-29 12:54:33 +08:00
2025-11-29 12:54:33 +08:00
2025-11-28 22:38:37 +08:00
2025-11-28 22:38:37 +08:00
2025-11-29 08:45:50 +08:00
2025-11-28 22:54:02 +08:00
2025-11-29 08:45:50 +08:00
2025-11-29 07:10:38 +08:00
2025-11-28 22:54:02 +08:00

LJWX Admin - Modern Dashboard Template

一个基于 Vite + Vue3 + Tailwind CSS + ECharts 的现代化管理后台模板,配套 ljwx-fastapi 后端使用。

技术栈

  • 框架: Vue 3 (Composition API + <script setup>)
  • 构建工具: Vite 7
  • 路由: Vue Router 4 (history 模式)
  • 样式: Tailwind CSS 3
  • 图表: ECharts 5
  • 代码风格: ESM + 单文件组件

项目结构

ljwx-admin/
├── src/
│   ├── assets/              # 静态资源
│   │   └── styles.css       # Tailwind CSS 主样式文件
│   ├── components/          # 组件
│   │   ├── layout/          # 布局组件
│   │   │   ├── Sidebar.vue  # 侧边导航栏
│   │   │   └── Topbar.vue   # 顶部导航栏
│   │   └── charts/          # 图表组件
│   │       ├── BaseChart.vue          # ECharts 基础组件
│   │       ├── TeamsBarChart.vue      # 团队柱状图
│   │       ├── EmployeesCircleChart.vue # 员工分布饼图
│   │       └── ProjectLineChart.vue   # 项目折线图
│   ├── layouts/             # 页面布局
│   │   └── AppLayout.vue    # 主布局(侧边栏 + 顶栏 + 内容区)
│   ├── views/               # 页面视图
│   │   ├── Dashboard.vue    # 仪表盘(主页)
│   │   ├── Teams.vue        # 团队管理
│   │   ├── Employees.vue    # 员工管理
│   │   ├── Projects.vue     # 项目管理
│   │   └── Settings.vue     # 系统设置
│   ├── router/              # 路由配置
│   │   └── index.js         # 路由定义
│   ├── App.vue              # 根组件
│   └── main.js              # 应用入口
├── public/                  # 公共静态资源
├── index.html               # HTML 模板
├── vite.config.js           # Vite 配置
├── tailwind.config.js       # Tailwind 配置
├── postcss.config.js        # PostCSS 配置
└── package.json             # 依赖配置

功能特性

1. 响应式布局

  • 左侧固定导航栏(260px)
  • 顶部工具栏(搜索、通知、用户信息)
  • 自适应内容区域

2. 路由页面

  • /dashboard - 数据仪表盘(带统计卡片、多种图表)
  • /teams - 团队管理(表格视图)
  • /employees - 员工管理(卡片网格)
  • /projects - 项目管理(项目卡片)
  • /settings - 系统设置(多标签页表单)

3. 图表组件

  • 封装通用 BaseChart 组件,自动处理初始化、resize、销毁
  • 提供三种示例图表:柱状图、饼图、折线图
  • 所有图表使用自定义主题色,与整体设计风格统一

4. 设计规范

  • 主色: #6366F1 (Indigo)
  • 辅色: #F97316 (Orange)、#22C55E (Green)
  • 背景: #F5F5FB (浅灰)
  • 卡片: 白色底 + rounded-3xl + 柔和阴影
  • 按钮: rounded-xl

快速开始

安装依赖

npm install

启动开发服务器

npm run dev

访问 http://localhost:6115 或 http://YOUR_SERVER_IP:6115 (支持远程访问)

构建生产版本

npm run build

预览生产构建

npm run preview

与后端集成

本模板设计为配套 ljwx-fastapi 后端使用。

API 集成步骤

  1. 在 src/ 下创建 api/ 目录
  2. 使用 axios 或 fetch 封装 API 调用
  3. 在各个页面组件中调用 API 获取真实数据

示例:

// src/api/dashboard.js
export async function fetchDashboardStats() {
  const response = await fetch('http://localhost:8000/api/dashboard/stats')
  return response.json()
}

自定义主题

在 tailwind.config.js 中修改主题色:

theme: {
  extend: {
    colors: {
      primary: '#YOUR_COLOR',   // 修改主色
      secondary: '#YOUR_COLOR',
      success: '#YOUR_COLOR',
    }
  }
}

添加新页面

  1. 在 src/views/ 创建新的 .vue 文件
  2. 在 src/router/index.js 添加路由配置
  3. 在 src/components/layout/Sidebar.vue 添加导航菜单项

浏览器支持

  • Chrome (推荐)
  • Firefox
  • Safari
  • Edge

开发建议

  • 使用 VSCode + Volar 插件获得最佳开发体验
  • 启用 Tailwind CSS IntelliSense 插件
  • 确保安装 ESLint 和 Prettier 保持代码风格一致

License

MIT