fix: ENTRYPOINT 兼容 DB_* 和 MYSQL_* 两种变量命名,修复 MySQL 连接失败
This commit is contained in:
32
Dockerfile
32
Dockerfile
@@ -44,16 +44,26 @@ EXPOSE 8080
|
||||
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
|
||||
CMD wget -qO- http://localhost:8080/health || exit 1
|
||||
|
||||
# 启动入口(参考 mediabot:支持环境变量动态构造数据源 URL,便于不同环境切换)
|
||||
# 启动入口(兼容 DB_* 和 MYSQL_* 两种变量命名风格)
|
||||
# Spring Boot 会优先读取 SPRING_DATASOURCE_* 环境变量,覆盖 application.yml 配置
|
||||
ENTRYPOINT ["sh", "-c", "\
|
||||
if [ -z \"$SPRING_DATASOURCE_URL\" ]; then \
|
||||
export SPRING_DATASOURCE_URL=\"jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DB}?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8\"; \
|
||||
fi; \
|
||||
if [ -n \"$MYSQL_USER\" ]; then \
|
||||
export SPRING_DATASOURCE_USERNAME=\"$MYSQL_USER\"; \
|
||||
fi; \
|
||||
if [ -n \"$MYSQL_PASSWORD\" ]; then \
|
||||
export SPRING_DATASOURCE_PASSWORD=\"$MYSQL_PASSWORD\"; \
|
||||
fi; \
|
||||
java $JAVA_OPTS -jar app.jar \
|
||||
# 如果未设置完整的 SPRING_DATASOURCE_URL,则从环境变量构造\n\
|
||||
if [ -z \"$SPRING_DATASOURCE_URL\" ]; then \n\
|
||||
HOST=\"${MYSQL_HOST:-${DB_HOST:-localhost}}\"; \n\
|
||||
PORT=\"${MYSQL_PORT:-${DB_PORT:-3306}}\"; \n\
|
||||
DB=\"${MYSQL_DB:-${DB_NAME:-par_registry}}\"; \n\
|
||||
export SPRING_DATASOURCE_URL=\"jdbc:mysql://${HOST}:${PORT}/${DB}?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8\"; \n\
|
||||
fi; \n\
|
||||
# 用户名密码:MYSQL_* 优先,DB_* 作为备选\n\
|
||||
if [ -z \"$SPRING_DATASOURCE_USERNAME\" ]; then \n\
|
||||
export SPRING_DATASOURCE_USERNAME=\"${MYSQL_USER:-${DB_USERNAME:-root}}\"; \n\
|
||||
fi; \n\
|
||||
if [ -z \"$SPRING_DATASOURCE_PASSWORD\" ]; then \n\
|
||||
export SPRING_DATASOURCE_PASSWORD=\"${MYSQL_PASSWORD:-${DB_PASSWORD:-}}\"; \n\
|
||||
fi; \n\
|
||||
# 兼容 JWT_SECRET 和 HMAC_SECRET 两种命名\n\
|
||||
if [ -z \"$HMAC_SECRET\" ] && [ -n \"$JWT_SECRET\" ]; then \n\
|
||||
export HMAC_SECRET=\"$JWT_SECRET\"; \n\
|
||||
fi; \n\
|
||||
java $JAVA_OPTS -jar app.jar \n\
|
||||
"]
|
||||
|
||||
Reference in New Issue
Block a user