1. 项目概述
这是一个基于Next.js的银企直连前置机管理系统的容器化部署实践。作为一名长期从事企业级应用开发的前端工程师,我最近完成了这个项目的Docker化改造,过程中积累了不少值得分享的经验。
这个系统采用SSR架构,主要服务于银行与企业间的数据交换场景。传统的部署方式需要手动配置服务器环境,而容器化后可以实现一键部署,极大提升了开发效率和环境一致性。下面我将详细介绍从技术选型到实际部署的全过程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术栈解析
2.1 核心框架选择
我们选择了Next.js 15作为基础框架,主要基于以下考虑:
- App Router架构提供了更直观的路由管理
- 内置的API路由简化了前后端交互
- 自动化的静态生成(SSG)和服务端渲染(SSR)混合支持
- 完善的TypeScript集成
提示:Next.js的App Router相比Pages Router有更好的代码组织方式,特别适合中大型项目。
2.2 配套技术选型
- UI组件库:Ant Design 5提供了丰富的企业级组件,其设计语言与金融类系统高度契合
- 样式方案:Tailwind CSS与Sass的组合既保证了开发效率又保持了样式可控性
- 状态管理:直接使用React Context API,避免引入Redux等额外复杂度
- 认证方案:NextAuth.js完美集成Next.js,支持多种认证提供商
3. 项目结构设计
3.1 目录架构
code复制yqzl/
├── app/
│ ├── api/
│ ├── auth/
│ ├── components/
│ ├── dashboard/
│ ├── documents/
│ └── lib/
├── public/
├── types/
├── Dockerfile
├── docker-compose.yml
├── next.config.ts
└── .env
3.2 关键设计决策
- 按功能划分模块:每个业务功能(dashboard/documents)有独立目录
- 组件分层:
- 基础组件:Button/Input等
- 业务组件:与具体功能强相关的复合组件
- 布局组件:处理页面整体结构
- API路由:直接使用Next.js的API路由,避免单独维护后端服务
4. Docker配置详解
4.1 多阶段构建策略
dockerfile复制# 阶段1:依赖安装
FROM node:20-alpine AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm
