# CAS 5.3.16 镜像（cas.war 由 CI 用 maven 从源码构建，落在 target/cas.war）
# 构建上下文 = 项目根目录： docker build -f docker/Dockerfile -t <img> .
FROM eclipse-temurin:8-jre

# 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" 2>/dev/null || true \
 && apt-get update && apt-get install -y --no-install-recommends curl python3 python3-yaml \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app
# 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.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"]
