chenxing dc8a0924a8
build / build-push (push) Successful in 2m45s
修复容器 hostname 无法解析导致的启动报错
现象:CAS banner 后持续 ERROR Could not determine local host name
UnknownHostException: <容器短ID>: Temporary failure in name resolution。

根因:容器 hostname 默认为容器短 ID,当前网络环境下 /etc/hosts 未含该行、
内网 DNS 亦无法解析,InetAddress.getLocalHost() 失败;连锁导致 CAS
TicketIdSanitizationUtils 静态初始化抛 ExceptionInInitializerError(票据日志带病)。

修复:ENTRYPOINT 改为 entrypoint.sh,启动前把 hostname 兜底写入 /etc/hosts
(已存在则跳过),再 exec java -jar cas.war。不依赖 projman 侧改动,任何部署方式均生效。
2026-08-31 20:11:11 +08:00

CasService

CAS 5.3.16 单点登录服务(war overlay 项目,源自 CasSsoService 改版迁移)。本仓库由 projman 创建并注入 CI 与 Dockerfile,已按 CAS 项目形态适配。

与标准 springboot CI 模板的差异

  • 构建产物是 WAR 不是 jar:pom packaging=war、finalName=cas,CI 在 maven 构建后 cp cas.war app.jar(可执行 WAR,WarLauncher 直接 java -jar)。
  • Dockerfile 为 CAS 专用:镜像内生成自签名 keystore(8443 HTTPS),内置 docker/cas.properties(仅 TLS/端口/日志)与 etc/cas/config/log4j2.xml;业务配置由 projman 配置管理挂载 /app/config/application.yml。
  • 健康检查:/cas/status(HTTPS 自签名),projman 应用需配置 healthPath=/cas/status + HTTPS 开。
  • pom 不声明外网仓库:依赖全部经 nexus maven-public 代理解析(内网 CI 无外网)。
  • 前端登录页静态文件由 CasSsoFront 仓库独立发布(src/main/webapp/front/ 不入库)。

推送后验证

push 到 main 触发 CI 构建,前往 Gitea 仓库 → Actions 查看日志;构建成功后镜像推送到 Nexus(docker-hosted/cas-service:{sha8}),projman 建档待部署,在 projman 应用详情「后端发布」手动点部署。

S
Description
managed by projman
Readme
2.2 MiB
Languages
Java 54.1%
JavaScript 14.6%
HTML 10.5%
CSS 7.2%
Shell 6%
Other 7.6%