fix: 改用 nacos_config.py 运行时注入 Nacos 配置(替代失效的 EPP);CI 改为 maven 从源码构建 war,移除提交的 168MB cas.war
deploy-cassso-service / build-deploy (push) Successful in 13m33s

This commit is contained in:
WorkBuddy
2026-08-06 21:54:49 +08:00
parent d4432ef9e9
commit 23eb1be4ad
11 changed files with 316 additions and 33 deletions
+9 -6
View File
@@ -1,4 +1,4 @@
# CAS 5.3.16 镜像(基于已构建好的 target/cas.war)
# CAS 5.3.16 镜像(cas.war 由 CI 用 maven 从源码构建,落在 target/cas.war)
# 构建上下文 = 项目根目录: docker build -f docker/Dockerfile -t <img> .
FROM eclipse-temurin:8-jre
@@ -7,18 +7,21 @@ RUN mkdir -p /etc/cas/config \
&& keytool -genkeypair -alias cas -keyalg RSA -keysize 2048 -validity 3650 \
-storetype JKS -keystore /etc/cas/cas.keystore \
-storepass changeit -keypass changeit -dname "CN=cas.example.org" 2>/dev/null || true \
&& apt-get update && apt-get install -y --no-install-recommends curl \
&& apt-get update && apt-get install -y --no-install-recommends curl python3 python3-yaml \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY docker/cas.war /app/cas.war
# cas.war 由 maven 源码构建产出(target/cas.war),不再把 war 提交进 git
COPY target/cas.war /app/cas.war
COPY docker/cas.properties /etc/cas/config/cas.properties
COPY docker/nacos_config.py /app/nacos_config.py
COPY docker/run-cas.sh /app/run-cas.sh
COPY etc/cas/config/log4j2.xml /etc/cas/config/log4j2.xml
RUN chmod +x /app/run-cas.sh
# 镜像内 cas.properties 仅保留本地无关配置(HTTPS/端口/日志/管理页白名单);
# 业务配置(cas.server.name / JDBC / Redis 等)由 NacosEnvironmentPostProcessor 在启动阶段
# 从 Nacos 原生拉取(common.yaml + cas.yaml,namespace=NACOS_NAMESPACE),镜像保持环境无关。
# 业务配置(cas.server.name / JDBC / Redis / always-captcha 等)由 run-cas.sh 在启动阶段
# 调用 nacos_config.py 从 Nacos 原生拉取(common.yaml + cas.yaml,namespace=NACOS_NAMESPACE),
# 生成 /etc/cas/config/cas.properties(CAS 5.3 原生加载,优先级高于 classpath application.yml)。
# 替代失效的 EnvironmentPostProcessor(CAS 5.3 + Spring Cloud bootstrap 下 EPP 不触发)。
EXPOSE 8443
ENTRYPOINT ["/app/run-cas.sh"]