迁移 CasSsoService 源码并按 CAS war overlay 形态适配 CI
build / build-push (push) Successful in 4m8s

- 复制 CAS 5.3.16 overlay 源码(src/、pom.xml、etc/cas/config/log4j2.xml、docker/cas.properties)及本地构建辅助(build.cmd/build.sh/maven-settings.xml)
- build.yml:maven 产物由 jar 改为 war(cp cas.war app.jar),CI 内源码构建,摆脱 174MB war blob 入库
- Dockerfile:CAS 专用镜像(自签名 keystore 8443 HTTPS + 内置 cas.properties/log4j2.xml + JAVA_OPTS 注入)
- pom.xml:移除 sonatype/shibboleth 外网仓库,依赖全部经 nexus maven-public 解析
- 前端 front/ 不入库(CasSsoFront 仓库独立发布)
This commit is contained in:
2026-08-31 18:55:29 +08:00
parent 7d8f033f11
commit d6583f49f9
24 changed files with 2623 additions and 55 deletions
+17 -8
View File
@@ -1,18 +1,27 @@
# 由 projman 注入的 Spring Boot 运行镜像(单阶段,jar 预构建)
# CI 已先 mvn package,并在容器内把产物 cp 成固定名 target/app.jar
# CAS 5.3.16 运行镜像(单阶段,war 预构建)
# CI 已先 mvn package 并在容器内把产物 cp 成固定名 target/app.jar(= cas.war,可执行 WAR)
# 构建上下文 = 仓库根:docker build -f docker/Dockerfile .
# 健康检查依赖 curl(projman 部署用 curl 探 /actuator/health)——应用需含 spring-boot-starter-actuator
# 健康检查(projman 应用配置 healthPath=/cas/status + HTTPS 自签名开):curl -fk https://localhost:8443/cas/status
# 时区 Asia/Shanghai;JAVA_OPTS 由 projman 部署 env 注入(默认 -Xms512m -Xmx1024m)
FROM eclipse-temurin:8-jre
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl tzdata \
# CAS 5.3 默认要求 HTTPS(安全 Cookie),生成自签名密钥库(密码固定 changeit,过渡期用)
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" \
&& apt-get update && apt-get install -y --no-install-recommends curl tzdata \
&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY target/app.jar /app/app.jar
COPY target/app.jar /app/cas.war
COPY docker/cas.properties /etc/cas/config/cas.properties
COPY etc/cas/config/log4j2.xml /etc/cas/config/log4j2.xml
EXPOSE 10001
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS:--Xms512m -Xmx1024m} -Dfile.encoding=UTF-8 -jar /app/app.jar"]
# 镜像内 cas.properties 仅保留环境无关配置(HTTPS/端口/日志/管理页白名单);
# 业务配置(cas.server.name / cas.authn.jdbc / Redis / custom.login.* 等)来自 projman
# 配置管理挂载的 /app/config/application.yml(Boot 1.5 自动加载 file:./config/ 且优先于 classpath),镜像保持环境无关。
EXPOSE 8443
ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS:--Xms512m -Xmx1024m} -Dfile.encoding=UTF-8 -jar /app/cas.war"]
+14
View File
@@ -0,0 +1,14 @@
# CAS 烤进镜像的本地兜底配置(与运行环境无关、不含任何凭据)
# 业务配置来自 projman 配置管理挂载的 /app/config/application.yml:
# -> cas.server.name / cas.authn.jdbc / Redis / custom.login.* 等全部由挂载文件提供,本文件不写。
# 仅保留本地必需的:HTTPS 密钥库、端口、日志、管理页白名单。
server.port: 8443
server.ssl.enabled: true
server.ssl.key-store: /etc/cas/cas.keystore
server.ssl.key-store-password: changeit
server.ssl.key-password: changeit
server.ssl.key-alias: cas
logging.config: file:/etc/cas/config/log4j2.xml
cas.adminPagesSecurity.ip=127\.0\.0\.1