chore: bootstrap.yml 本地默认不连 nacos(local),CI 用环境变量注入配置

- profiles.active 默认 local(不连 nacos);CI 注入 SPRING_PROFILES_ACTIVE=prod
- nacos config.enabled 默认 false,仅 CI 注入 NACOS_CONFIG_ENABLED=true 时启用
- 凭据改用顶层 SPRING_CLOUD_NACOS_* 环境变量(原写在 config.* 下导致 403)
- 调整 shared-configs 加载顺序与 namespace/group,并补充项目排查记忆
This commit is contained in:
Allen
2026-08-12 17:41:21 +08:00
parent dc217ca7a9
commit be1c05ea31
2 changed files with 38 additions and 12 deletions
+32 -12
View File
@@ -1,27 +1,47 @@
spring:
application:
name: bschclassmanage
# 本地默认 local(不连 nacos);CI 注入 SPRING_PROFILES_ACTIVE=prod
profiles:
active: dev
active: ${SPRING_PROFILES_ACTIVE:local}
cloud:
nacos:
config:
# Nacos 配置中心地址;生产也可通过环境变量 NACOS_ADDR 覆盖
# ⭐ 本地默认关闭 nacos(profile=local 时完全不连,无 403 噪音,纯走 application.yml)
# CI 注入 NACOS_CONFIG_ENABLED=true 才启用,拉 prod namespace 配置覆盖 application.yml
enabled: ${NACOS_CONFIG_ENABLED:false}
# Nacos 配置中心地址;CI 注入 NACOS_ADDR=nacos:8848(容器内网别名)
server-addr: ${NACOS_ADDR:nacos.yunhaixingtong.com:8848}
# public 命名空间
namespace: ""
# 应用自身配置所在分组
group: NOTICE
# 配置文件格式;最终主配置 dataId = ${spring.application.name}.${file-extension},即 notice.yaml
# 默认指向 prod namespace UUID,避免本地误开时连到空的 dev 命名空间
# CI 用 SPRING_CLOUD_NACOS_CONFIG_NAMESPACE 覆盖(注意:NACOS_NAMESPACE 这个 env 名不生效,必须用 SPRING_CLOUD_NACOS_CONFIG_NAMESPACE)
namespace: ${SPRING_CLOUD_NACOS_CONFIG_NAMESPACE:6196f0de-a28d-4894-8f10-e2982b57c6bc}
# 主配置 group:userbase.yaml 在 USERBASE group(与下方 shared-configs 的 DEFAULT_GROUP 不同组,各自指定)
group: SCHCLASSMANAGE
# 配置文件格式;最终主配置 dataId = ${spring.application.name}.${file-extension} = userbase.yaml
file-extension: yaml
encode: UTF-8
# nacos 不可达时不强制退出,回退到本地 application.yml 兜底
fail-fast: false
# 只读账号
username: yh-reader
password: 123456
# 共享公共配置:public 空间下的 common.properties
# 只读账号(仅读取配置权限);CI 注入 SPRING_CLOUD_NACOS_USERNAME/PASSWORD
# 注意:凭据必须用顶层 SPRING_CLOUD_NACOS_* env,放在 spring.cloud.nacos.config.* 下不生效(403)
username: ${SPRING_CLOUD_NACOS_USERNAME:yh-reader}
password: ${SPRING_CLOUD_NACOS_PASSWORD:123456}
# ============================================================
# ⭐⭐⭐ 共享配置加载顺序(决定优先级!:排在数组越靠后 = 优先级越高 = 覆盖前面的同 key)
# 低 1) public 命名空间 application-default.yaml(跨环境公共:日期格式/上传大小等,所有应用都能继承)
# 中 2) prod 命名空间 application-infra.yaml(仅生产:mysql/redis/rabbitmq 中间件连接)
# 高 3) prod 命名空间 userbase.yaml(应用级主配置:上传路径/context-path/CAS等,覆盖前两个)
# 最高 4) 启动命令 -D 参数 / 环境变量(覆盖一切)
# ============================================================
shared-configs:
- data-id: common.properties
# ① 1 号(最低优先级):public 命名空间(namespace="" 固定写空字符串)的 application-default.yaml
- data-id: application-default.yaml
group: DEFAULT_GROUP
namespace: "" # ⭐ 固定 = "",强制指向 Nacos "public" 命名空间,不读上面的全局 prod namespace
refresh: false
# ② 2 号(中等优先级):prod 命名空间(不写 namespace = 继承顶部全局 prod namespace id)的 application-infra.yaml
- data-id: application-infra.yaml
group: DEFAULT_GROUP
refresh: false