# ⭐️ 关键步骤：选择一个基于 JDK 21 的镜像
# openjdk:21-jdk-slim 是一个较小的选择
FROM openjdk:21-ea-21-jdk-slim

# 设置工作目录
WORKDIR /app

# 1. 更新包列表并安装 tzdata
# tzdata 包含了世界各地的时区数据
RUN apt-get update && \
    DEBIAN_FRONTEND="noninteractive" apt-get install -y tzdata && \
    rm -rf /var/lib/apt/lists/*

# 2. 设置 TZ 环境变量
# 这是最关键的一步。TZ 变量会被许多程序和系统调用用来确定时区。
# 将 <你的时区> 替换为实际的时区名称，例如 Asia/Shanghai, America/New_York, Europe/London 等。
ENV TZ=Asia/Shanghai

# 将构建好的 JAR 包添加到容器中
# 假设你的 JAR 文件在 target/ 目录下，且命名为 app.jar
COPY ./target/*.jar app.jar

# 暴露 Spring Boot 默认端口
EXPOSE 8080

# 运行 JAR 文件。-Djava.security.egd=file:/dev/./urandom 用于提高随机数生成速度，在容器环境中推荐使用
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app/app.jar"]
