feat: 添加前后端一体化 Docker 部署支持

- 创建根目录 Dockerfile,支持前后端一起部署到一个容器
- 添加 Nginx 配置,自动代理后端 API 和 WebSocket
- 创建启动脚本,同时启动后端和 Nginx
- 更新 docker-compose.yml 支持一体化部署
- 创建一体化部署脚本 deploy.sh
- 修复前端环境变量支持,默认使用相对路径
- 优化部署脚本:.env 文件不存在时创建后终止部署
- 更新部署文档,添加一体化部署说明
This commit is contained in:
WrBug
2025-12-03 03:08:53 +08:00
parent 59722d7311
commit 1216fc5ed5
13 changed files with 615 additions and 65 deletions
+4 -5
View File
@@ -5,17 +5,16 @@ import { wsManager } from './websocket'
/**
* API 基础配置
* 支持通过环境变量 VITE_API_URL 配置后端地址
* 默认使用相对路径 /api(适用于同域部署
* 如果设置了 VITE_API_URL,则使用完整 URL
* 默认使用相对路径 /api(通过反向代理转发)
* 如果设置了 VITE_API_URL 环境变量,则使用完整 URL(用于跨域场景
*/
const getBaseURL = (): string => {
const envApiUrl = import.meta.env.VITE_API_URL
if (envApiUrl) {
// 如果设置了环境变量,使用完整 URL
// 如果设置了环境变量,使用完整 URL(支持跨域)
return `${envApiUrl}/api`
}
// 否则使用相对路径(适用于开发环境代理或同域部署
// 否则使用相对路径(通过反向代理转发
return '/api'
}
+4 -3
View File
@@ -325,17 +325,18 @@ class WebSocketManager {
/**
* 获取 WebSocket URL(带token认证)
* 支持通过环境变量 VITE_WS_URL 配置 WebSocket 地址
* 默认使用相对路径 /ws(通过反向代理转发)
* 如果设置了 VITE_WS_URL 环境变量,则使用完整 URL(用于跨域场景)
*/
private getWebSocketUrl(): string {
const envWsUrl = import.meta.env.VITE_WS_URL
let wsBaseUrl: string
if (envWsUrl) {
// 如果设置了环境变量,使用完整 URL
// 如果设置了环境变量,使用完整 URL(支持跨域)
wsBaseUrl = envWsUrl
} else {
// 否则使用相对路径(适用于开发环境代理或同域部署
// 否则使用相对路径(通过反向代理转发
const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'
const host = window.location.host
wsBaseUrl = `${protocol}//${host}`