156 lines
3.2 KiB
Markdown
156 lines
3.2 KiB
Markdown
# Docker + PM2 部署快速参考
|
||
|
||
## 🚀 快速开始
|
||
|
||
```bash
|
||
# 本地构建测试
|
||
yarn build
|
||
yarn preview
|
||
|
||
# Docker 部署
|
||
docker-compose up -d --build
|
||
|
||
# 查看日志
|
||
docker-compose logs -f
|
||
```
|
||
|
||
## 📝 常用命令
|
||
|
||
### 本地开发
|
||
```bash
|
||
yarn dev # 启动开发服务器
|
||
yarn build # 构建生产版本
|
||
yarn preview # 预览构建结果
|
||
yarn clean # 清理构建产物
|
||
```
|
||
|
||
### Docker 操作
|
||
```bash
|
||
# 基础操作
|
||
docker-compose up -d # 启动服务
|
||
docker-compose down # 停止并删除容器
|
||
docker-compose restart # 重启服务
|
||
docker-compose logs -f nex-design # 查看日志
|
||
|
||
# 重新构建
|
||
docker-compose up -d --build # 重新构建并启动
|
||
docker-compose build --no-cache # 不使用缓存重新构建
|
||
|
||
# 容器管理
|
||
docker exec -it nex-design-app sh # 进入容器
|
||
docker ps # 查看运行中的容器
|
||
docker stats nex-design-app # 查看资源使用
|
||
```
|
||
|
||
### PM2 管理(容器内)
|
||
```bash
|
||
pm2 list # 查看进程列表
|
||
pm2 logs # 查看日志
|
||
pm2 restart nex-design # 重启应用
|
||
pm2 monit # 实时监控
|
||
```
|
||
|
||
## 🔧 故障排查
|
||
|
||
### 文档无法加载
|
||
```bash
|
||
# 检查 docs 目录是否正确挂载
|
||
docker exec nex-design-app ls -la /app/dist/docs/
|
||
|
||
# 检查挂载配置
|
||
docker inspect nex-design-app | grep -A 10 Mounts
|
||
|
||
# 如果挂载失败,重启容器
|
||
docker-compose down
|
||
docker-compose up -d
|
||
```
|
||
|
||
### 文档修改后未生效
|
||
```bash
|
||
# 卷挂载方案下,修改应立即生效
|
||
# 如果未生效,检查浏览器缓存
|
||
# 使用 Ctrl+Shift+R 强制刷新
|
||
|
||
# 验证容器内文件已更新
|
||
docker exec nex-design-app cat /app/dist/docs/DESIGN_COOKBOOK.md
|
||
```
|
||
|
||
### 容器启动失败
|
||
```bash
|
||
# 查看详细日志
|
||
docker-compose logs nex-design
|
||
|
||
# 检查端口占用
|
||
lsof -i :3000
|
||
```
|
||
|
||
### 内存不足
|
||
```bash
|
||
# 查看资源使用
|
||
docker stats nex-design-app
|
||
|
||
# 调整 ecosystem.config.js 中的 max_memory_restart
|
||
```
|
||
|
||
## 📁 重要文件
|
||
|
||
| 文件 | 说明 |
|
||
|------|------|
|
||
| `ecosystem.config.js` | PM2 配置 |
|
||
| `Dockerfile` | Docker 镜像配置 |
|
||
| `docker-compose.yml` | Docker Compose 编排 |
|
||
| `.dockerignore` | Docker 构建忽略 |
|
||
| `DEPLOYMENT.md` | 完整部署文档 |
|
||
| `docs/DOCKER_DOCS_SETUP.md` | 文档目录问题说明 |
|
||
|
||
## 🌐 访问地址
|
||
|
||
- **本地开发**: http://localhost:5173
|
||
- **本地预览**: http://localhost:4173
|
||
- **Docker 容器**: http://localhost:3000
|
||
|
||
## ⚙️ 环境要求
|
||
|
||
- Node.js >= 16.0.0
|
||
- Yarn >= 1.22.0
|
||
- Docker >= 20.10
|
||
- Docker Compose >= 2.0
|
||
|
||
## 📦 构建流程
|
||
|
||
```
|
||
源代码
|
||
↓
|
||
vite build → dist/*
|
||
↓
|
||
Docker 镜像: dist → /app/dist
|
||
↓
|
||
卷挂载: ./docs → /app/dist/docs (实时同步)
|
||
↓
|
||
PM2 serve: /app/dist @ :3000
|
||
```
|
||
|
||
**文档更新流程:**
|
||
```
|
||
编辑 docs/*.md → 立即生效(无需重启)
|
||
```
|
||
|
||
## 🔐 生产环境
|
||
|
||
建议配置 Nginx 反向代理和 SSL:
|
||
|
||
```nginx
|
||
server {
|
||
listen 80;
|
||
server_name your-domain.com;
|
||
|
||
location / {
|
||
proxy_pass http://localhost:3000;
|
||
proxy_set_header Host $host;
|
||
proxy_set_header X-Real-IP $remote_addr;
|
||
}
|
||
}
|
||
```
|
||
|
||
详见 `DEPLOYMENT.md` 完整配置。
|