Files
schoolNews/schoolNewsServ/docker/start.sh
2025-11-24 11:50:15 +08:00

78 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -e
echo "========================================"
echo "校园新闻管理系统 - 后端服务启动"
echo "========================================"
# 如果挂载的配置文件不存在,使用模板
if [ ! -f /app/config/application.yml ]; then
echo "[INFO] 未找到application.yml使用模板配置"
cp /app/config/application.yml.template /app/config/application.yml
else
echo "[INFO] 使用挂载的application.yml配置"
fi
if [ ! -f /app/config/log4j2-spring.xml ]; then
echo "[INFO] 未找到log4j2-spring.xml使用模板配置"
cp /app/config/log4j2-spring.xml.template /app/config/log4j2-spring.xml
else
echo "[INFO] 使用挂载的log4j2-spring.xml配置"
fi
# 等待数据库就绪
if [ ! -z "$MYSQL_HOST" ]; then
echo "[INFO] 等待MySQL启动 ($MYSQL_HOST:${MYSQL_PORT:-3306})..."
RETRY_COUNT=0
MAX_RETRIES=30
while ! nc -z $MYSQL_HOST ${MYSQL_PORT:-3306}; do
RETRY_COUNT=$((RETRY_COUNT+1))
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
echo "[ERROR] MySQL连接超时"
exit 1
fi
echo "[INFO] 等待MySQL就绪... ($RETRY_COUNT/$MAX_RETRIES)"
sleep 2
done
echo "[INFO] MySQL已就绪"
sleep 3
# 注意爬虫配置路径已在MySQL容器初始化时配置好
# 详见docker/Dockerfile.mysql 的 01-init-database.sh
fi
# 等待Redis就绪
if [ ! -z "$REDIS_HOST" ]; then
echo "[INFO] 等待Redis启动 ($REDIS_HOST:${REDIS_PORT:-6379})..."
RETRY_COUNT=0
MAX_RETRIES=30
while ! nc -z $REDIS_HOST ${REDIS_PORT:-6379}; do
RETRY_COUNT=$((RETRY_COUNT+1))
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
echo "[ERROR] Redis连接超时"
exit 1
fi
echo "[INFO] 等待Redis就绪... ($RETRY_COUNT/$MAX_RETRIES)"
sleep 2
done
echo "[INFO] Redis已就绪"
fi
# 显示配置信息
echo "========================================"
echo "[INFO] 数据库: $MYSQL_HOST:${MYSQL_PORT:-3306}/$MYSQL_DATABASE"
echo "[INFO] Redis: $REDIS_HOST:${REDIS_PORT:-6379}"
echo "[INFO] 爬虫路径: /app/crawler"
echo "[INFO] Python: $(python3 --version)"
echo "========================================"
# 启动应用
echo "[INFO] 启动Spring Boot应用..."
exec java \
-Djava.security.egd=file:/dev/./urandom \
-Dspring.config.location=/app/config/application.yml \
-Dlogging.config=/app/config/log4j2-spring.xml \
-Dfile.encoding=UTF-8 \
${JAVA_OPTS} \
-jar /app/app.jar