Spring Cloud Data Flow 2.8+环境变量覆盖数据库配置失效求助
问题求助:Spring Cloud Data Flow 2.8+ 环境变量覆盖配置失效及注册流程优化
一、配置覆盖失效问题
在Spring Cloud Data Flow 2.7.2及更早版本中,运行单个应用的Docker容器可通过容器环境变量传递数据库URL、用户名、密码,覆盖应用内application.yml的默认配置。应用配置如下:
appname: datasource: url: ${APP_DB_URL:jdbc:sqlserver://127.0.0.1:1433} password: ${APP_DB_PASSWORD:D3faultP4ss!} username: ${APP_DB_USER:sa}
但升级至Data Flow 2.8及以上版本后,该方式不再生效,应用仍加载application.yml中的默认数据库配置。
二、当前应用自动注册流程
应用启动后会自动完成以下注册步骤(APP_NAME、APP_VERSION、APP_JAR为构建阶段注入容器的环境变量):
- 删除旧任务定义
curl "http://localhost:9393/tasks/definitions/${APP_NAME}?cleanup=false" -o /dev/null -s -w "%{http_code}" -X DELETE
- 删除旧应用
curl "http://localhost:9393/apps" -o /dev/null -s -w "%{http_code}" -X DELETE
- 注册应用
curl "http://localhost:9393/apps/task/${APP_NAME}/${APP_VERSION}" -o /dev/null -s -w "%{http_code}" -X POST -d "uri=file%3A%2F%2Fapp%2F${APP_JAR}&force=true"
- 注册任务
curl "http://localhost:9393/tasks/definitions" -o /dev/null -s -w "%{http_code}" -X POST -d "name=${APP_NAME}&definition=${APP_NAME}"
三、每日定时任务触发命令
curl "http://localhost:9393/tasks/executions" -o /dev/null -s -w "%{http_code}" -X POST -d "name=${APP_NAME}&properties=deployer.${APP_NAME}.local.workingDirectoriesRoot%3D%2Fapp%2Flogs&arguments=--date%3D$(date --date='yesterday' +\%Y-\%m-\%d)+--range%3D${range}+--dataSource%3DApplication+SourceProperty"
求助需求
- 如何在Data Flow 2.8+版本中通过环境变量覆盖应用的数据库配置?
- 提供上述应用自动注册流程的优化方案。
内容的提问来源于stack exchange,提问作者Onni
相关产品推荐
相关产品推荐

