本项目提供了完整的 Docker 化部署方案,包含前端(Vue3)、后端(NestJS)和数据库(PostgreSQL)服务。
确保你的系统已安装:
复制环境变量模板并配置:
# 复制环境变量模板
cp env.example .env
# 编辑环境变量(可选)
vi .env
主要配置项:
POSTGRES_PASSWORD: PostgreSQL 数据库密码DATABASE_URL: 数据库连接字符串JWT_SECRET: JWT 加密密钥SESSION_SECRET: Session 会话密钥# 构建并启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f app
vue3-admin/
├── Dockerfile # 多阶段构建文件
├── docker-compose.yml # 服务编排文件
├── nginx.conf # Nginx 配置
├── .dockerignore # Docker 忽略文件
├── env.example # 环境变量模板
├── server/ # 后端代码
└── web/ # 前端代码
# 启动服务
docker-compose up -d
# 停止服务
docker-compose down
# 重启服务
docker-compose restart
# 重新构建
docker-compose build --no-cache
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f [service_name]
# 进入数据库容器
docker-compose exec postgres psql -U postgres -d vue3_admin
# 数据库备份
docker-compose exec postgres pg_dump -U postgres vue3_admin > backup.sql
# 数据库恢复
docker-compose exec -T postgres psql -U postgres vue3_admin < backup.sql
# 进入应用容器
docker-compose exec app sh
# 查看应用日志
docker-compose logs -f app
# 重启应用服务
docker-compose restart app
端口冲突
# 修改 docker-compose.yml 中的端口映射
ports:
- "8080:80" # 前端改为8080端口
- "3000:6666" # 后端改为3000端口
数据库连接失败
# 检查数据库服务状态
docker-compose logs postgres
# 检查环境变量配置
docker-compose config
前端页面无法访问
# 检查Nginx配置
docker-compose exec app nginx -t
# 重启Nginx
docker-compose exec app nginx -s reload
构建失败
# 清理Docker缓存
docker system prune -a
# 重新构建
docker-compose build --no-cache
# 查看所有服务日志
docker-compose logs
# 查看特定服务日志
docker-compose logs app
docker-compose logs postgres
# 实时跟踪日志
docker-compose logs -f --tail=100 app
所有服务都配置了健康检查:
# 检查服务健康状态
docker-compose ps
# 应用健康检查
curl http://localhost:6666/health
# 数据库健康检查
docker-compose exec postgres pg_isready -U postgres
项目使用 Docker 卷持久化数据:
postgres_data: PostgreSQL 数据app_logs: 应用日志./server/upload: 上传文件安全配置
性能优化
备份策略
监控告警