镜像制作
This commit is contained in:
77
schoolNewsServ/docker/start.sh
Normal file
77
schoolNewsServ/docker/start.sh
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user