diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 7db2c64..490c015 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -103,7 +103,8 @@ jobs: # bootstrap.yml 默认 nacos.config.enabled=false(本地不连);CI 必须注入 NACOS_CONFIG_ENABLED=true 才会拉配置 # SPRING_PROFILES_ACTIVE=prod 激活生产 profile # namespace/凭据用顶层 SPRING_CLOUD_NACOS_* env(bootstrap 的 ${...} 占位符才能解析到) - # ⚠️ 后端无 context-path,caddy 已剥离 /bschclass 前缀,故容器内监听 8087、不加 context-path + # ⚠️ 后端有 context-path=/bschclass(application-prod.yml),caddy 用 handle(不剥离 /bschclass 前缀), + # 故 CAS 客户端拼出的 service URL 正确包含 /bschclass,登录回跳地址不会丢前缀。 docker run -d --name bschclass-service --restart unless-stopped --network infra-infra-net -p 8087:8087 \ --add-host sso.yunhaixingtong.com:192.168.10.160 \ -e SPRING_PROFILES_ACTIVE=prod \ @@ -113,11 +114,12 @@ jobs: -e SPRING_CLOUD_NACOS_USERNAME=yh-reader \ -e SPRING_CLOUD_NACOS_PASSWORD=123456 \ "$IMG" - # 健康检查:Spring 起来后根路径返回 404(无映射控制器),000 表示未起来(无 context-path,故用 8087 根) + # 健康检查:context-path=/bschclass 后,context root 为 /bschclass/(无欢迎页返回 404); + # 000 表示应用未起来(端口不通),非 000 即视为已启动。探 /bschclass/ 而非 / 更准确。 OK=0 for i in $(seq 1 30); do sleep 5 - CODE=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8087/ 2>/dev/null || true) + CODE=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8087/bschclass/ 2>/dev/null || true) if [ "$CODE" != "000" ]; then OK=1; break; fi done if [ "$OK" = "0" ]; then diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 8186d19..8bb96c4 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,6 +1,10 @@ server: address: 0.0.0.0 port: 8087 + servlet: + # 对齐 UserBase:后端加 context-path,配合 Caddy 用 handle(不剥离 /bschclass 前缀), + # 使 CAS 客户端拼出的 service URL 正确包含 /bschclass(否则登录回跳会丢前缀)。 + context-path: /bschclass yh: sso: