fix: 修复生产环境
This commit is contained in:
26
start.sh
26
start.sh
@@ -1,19 +1,31 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -e
|
||||
|
||||
# 不 set -e,避免任一进程启动失败时直接退出导致容器无服务
|
||||
PORT="${PORT:-3000}"
|
||||
BACKEND_PORT="${BACKEND_PORT:-8000}"
|
||||
|
||||
echo "Starting FastAPI backend on :${BACKEND_PORT}..."
|
||||
# 先启前端再启后端,保证至少前端能绑定端口;任一退出不杀另一个
|
||||
echo "Starting Node static frontend on 0.0.0.0:${PORT}..."
|
||||
HOST=0.0.0.0 PORT="${PORT}" BACKEND_PORT="${BACKEND_PORT}" node dist/server.js &
|
||||
FRONTEND_PID=$!
|
||||
|
||||
echo "Starting FastAPI backend on 0.0.0.0:${BACKEND_PORT}..."
|
||||
uvicorn backend.main:app --host 0.0.0.0 --port "${BACKEND_PORT}" &
|
||||
BACKEND_PID=$!
|
||||
|
||||
echo "Starting Node static frontend on :${PORT}..."
|
||||
PORT="${PORT}" BACKEND_PORT="${BACKEND_PORT}" node dist/server.js &
|
||||
FRONTEND_PID=$!
|
||||
sleep 2
|
||||
if ! kill -0 "${FRONTEND_PID}" 2>/dev/null; then
|
||||
echo "WARN: frontend (node) exited, check logs (e.g. node dist/server.js)"
|
||||
fi
|
||||
if ! kill -0 "${BACKEND_PID}" 2>/dev/null; then
|
||||
echo "WARN: backend (uvicorn) exited, check logs"
|
||||
fi
|
||||
|
||||
trap 'echo "Stopping services..."; kill ${BACKEND_PID} ${FRONTEND_PID} 2>/dev/null || true' INT TERM
|
||||
|
||||
wait -n "${BACKEND_PID}" "${FRONTEND_PID}"
|
||||
# 两进程都退出才结束,避免一个崩了把另一个也杀掉
|
||||
while kill -0 "${FRONTEND_PID}" 2>/dev/null || kill -0 "${BACKEND_PID}" 2>/dev/null; do
|
||||
wait -n "${FRONTEND_PID}" "${BACKEND_PID}" 2>/dev/null || true
|
||||
sleep 1
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user