feat: 添加前后端一体化 Docker 部署支持
- 创建根目录 Dockerfile,支持前后端一起部署到一个容器 - 添加 Nginx 配置,自动代理后端 API 和 WebSocket - 创建启动脚本,同时启动后端和 Nginx - 更新 docker-compose.yml 支持一体化部署 - 创建一体化部署脚本 deploy.sh - 修复前端环境变量支持,默认使用相对路径 - 优化部署脚本:.env 文件不存在时创建后终止部署 - 更新部署文档,添加一体化部署说明
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 启动脚本:同时启动 Nginx 和后端服务
|
||||
|
||||
set -e
|
||||
|
||||
# 函数:清理进程
|
||||
cleanup() {
|
||||
echo "收到退出信号,清理进程..."
|
||||
if [ -n "$BACKEND_PID" ]; then
|
||||
kill $BACKEND_PID 2>/dev/null || true
|
||||
fi
|
||||
nginx -s quit 2>/dev/null || true
|
||||
exit 0
|
||||
}
|
||||
|
||||
# 注册信号处理
|
||||
trap cleanup SIGTERM SIGINT
|
||||
|
||||
# 启动后端服务(后台运行)
|
||||
echo "启动后端服务..."
|
||||
java -jar /app/app.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE:-prod} &
|
||||
BACKEND_PID=$!
|
||||
|
||||
# 等待后端服务启动
|
||||
echo "等待后端服务启动..."
|
||||
for i in {1..60}; do
|
||||
if curl -f http://localhost:8000/api/health > /dev/null 2>&1; then
|
||||
echo "后端服务已启动"
|
||||
break
|
||||
fi
|
||||
if [ $i -eq 60 ]; then
|
||||
echo "后端服务启动超时"
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# 启动 Nginx(前台运行,作为主进程)
|
||||
echo "启动 Nginx..."
|
||||
exec nginx -g "daemon off;"
|
||||
|
||||
Reference in New Issue
Block a user