Merge branch 'master' of http://gitea.yunhaixingtong.com/wanghu/BSChClassManage
This commit is contained in:
+6
-10
@@ -3,7 +3,7 @@ name: ci-bschclass-service
|
||||
# 后端标准化 CI:maven 构建 jar -> docker build -> 推 Nexus docker-hosted
|
||||
# 触发:push 到 master(本仓库默认分支,代码在根目录)/ 手动 Run workflow
|
||||
# 依赖仓库 Actions Secrets:NEXUS_USER / NEXUS_PASSWORD(ci-docker 账号,仅 docker-hosted 推送权)
|
||||
# REDIS_PASSWORD / DB_PASSWORD / RABBITMQ_PASSWORD(中间件密码,运行时注入容器,不写死)
|
||||
# 中间件密码(redis/mysql/rabbitmq)由 Nacos application-infra.yaml 注入,无需 Secret,也不注入容器 env
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
@@ -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 \
|
||||
@@ -112,15 +113,13 @@ jobs:
|
||||
-e SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=6196f0de-a28d-4894-8f10-e2982b57c6bc \
|
||||
-e SPRING_CLOUD_NACOS_USERNAME=yh-reader \
|
||||
-e SPRING_CLOUD_NACOS_PASSWORD=123456 \
|
||||
-e REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }} \
|
||||
-e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \
|
||||
-e RABBITMQ_PASSWORD=${{ secrets.RABBITMQ_PASSWORD }} \
|
||||
"$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
|
||||
@@ -134,9 +133,6 @@ jobs:
|
||||
-e SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=6196f0de-a28d-4894-8f10-e2982b57c6bc \
|
||||
-e SPRING_CLOUD_NACOS_USERNAME=yh-reader \
|
||||
-e SPRING_CLOUD_NACOS_PASSWORD=123456 \
|
||||
-e REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }} \
|
||||
-e DB_PASSWORD=${{ secrets.DB_PASSWORD }} \
|
||||
-e RABBITMQ_PASSWORD=${{ secrets.RABBITMQ_PASSWORD }} \
|
||||
bschclass-service:latest
|
||||
echo "rolled back"; exit 7
|
||||
fi
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ RUN apt-get update \
|
||||
WORKDIR /app
|
||||
COPY target/BschClass-0.1.jar /app/BschClass-0.1.jar
|
||||
# 镜像内 application-prod.yml 仅作「nacos 不可达时的兜底默认」;
|
||||
# 正常启动由 run-app.sh 从 nacos 拉取线上配置(dataId=bschclassmanage-prod.yaml)后覆盖。
|
||||
# 正常启动由 run-app.sh 从 nacos 拉取线上配置(主 dataId=bschclassmanage.yaml,group=SCHCLASSMANAGE,prod 命名空间)后覆盖。
|
||||
COPY docker/application-prod.yml /app/config/application-prod.yml
|
||||
COPY docker/run-app.sh /app/run-app.sh
|
||||
RUN chmod +x /app/run-app.sh && mkdir -p /data/upload
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# BschClass 生产配置(线上以 nacos 的 bschclassmanage-prod.yaml 为准,本文件是 nacos 不可达时的兜底)
|
||||
# BschClass 生产配置(线上以 nacos 的 bschclassmanage.yaml 为准,本文件是 nacos 不可达时的兜底)
|
||||
server:
|
||||
port: 8087
|
||||
# 无 context-path:经 caddy 暴露为 http://base.yunhaixingtong.com/bschclass,caddy 已剥离 /bschclass 前缀
|
||||
@@ -15,12 +15,10 @@ spring:
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
|
||||
redis:
|
||||
host: redis-server
|
||||
host: redis
|
||||
port: 6379
|
||||
database: 0
|
||||
# 生产由 nacos application-infra.yaml 注入;此处仅作 nacos 不可达时的兜底,
|
||||
# 密码不写死,运行时由容器环境变量 REDIS_PASSWORD 注入(值来自 Gitea Secrets,不入镜像)
|
||||
password: ${REDIS_PASSWORD}
|
||||
# 密码由 nacos application-infra.yaml 注入(spring.redis.password),不在此写死、不依赖容器 env
|
||||
timeout: 2000ms
|
||||
data:
|
||||
redis:
|
||||
@@ -30,7 +28,7 @@ spring:
|
||||
# datasource:
|
||||
# url: jdbc:mysql://mysql8:3306/dbschoolclass?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
# username: root
|
||||
# # 生产由 nacos application-infra.yaml 注入;兜底密码运行时由 DB_PASSWORD 环境变量注入(来自 Gitea Secrets)
|
||||
# # 生产由 nacos application-infra.yaml 注入(含密码);此处仅作 nacos 不可达时的兜底参考
|
||||
# password: ${DB_PASSWORD}
|
||||
# driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# min-idle: 30
|
||||
@@ -63,8 +61,7 @@ spring:
|
||||
host: rabbitmq
|
||||
port: 5672
|
||||
username: admin
|
||||
# 生产由 nacos application-infra.yaml 注入;兜底密码运行时由 RABBITMQ_PASSWORD 环境变量注入(来自 Gitea Secrets)
|
||||
password: ${RABBITMQ_PASSWORD}
|
||||
# 密码由 nacos application-infra.yaml 注入(spring.rabbitmq.password),不在此写死、不依赖容器 env
|
||||
listener:
|
||||
direct:
|
||||
auto-startup: false
|
||||
|
||||
@@ -46,6 +46,19 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Nacos 配置中心(替代 Spring Cloud Config)。Spring Cloud Alibaba 2021.0.5 适配 Boot 2.7 -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
<!-- Boot 2.4+ 默认不再处理 bootstrap.yml,需显式引入以继续从 Nacos 拉取配置 -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-bootstrap</artifactId>
|
||||
<version>3.1.8</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
|
||||
@@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
public class LogController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ILogService logService; // 使用接口
|
||||
private ILogService logService; // 使用接口c
|
||||
|
||||
@GetMapping("systemSearch")
|
||||
public PageVO<OperationLogRecord> systemSearch(@RequestParam(required = false) String keyword,
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -77,8 +77,8 @@ yh:
|
||||
app-auth:
|
||||
enabled: true
|
||||
# 本应用自身身份(客户端签名用)
|
||||
app-key: 100001
|
||||
app-secret: ec4e860206374c80938719fff8e14a86
|
||||
app-key: 100002
|
||||
app-secret: 2314a3b158b24a838b2b9b69fd3db118
|
||||
open:
|
||||
enabled: true
|
||||
base-host: http://base.yunhaixingtong.com
|
||||
|
||||
@@ -4,7 +4,7 @@ spring:
|
||||
# 本地默认 local(不连 nacos);CI 注入 SPRING_PROFILES_ACTIVE=prod
|
||||
profiles:
|
||||
active: ${SPRING_PROFILES_ACTIVE:local}
|
||||
cloud:/
|
||||
cloud:
|
||||
nacos:
|
||||
config:
|
||||
# ⭐ 本地默认关闭 nacos(profile=local 时完全不连,无 403 噪音,纯走 application.yml)
|
||||
|
||||
Reference in New Issue
Block a user