5e86ebe6b7
- 新增 ApiResult 统一响应封装类,规范前端接口返回结构 - 添加 AuthController,支持多种登录方式及用户信息接口 - 实现 AuthService,包含登录、登出、密码修改、绑定手机号、重置密码等功能 - 集成图形验证码校验和登录失败锁定机制,增强安全性 - 支持邮箱登录和手机号验证码登录,完善多样化认证策略 - 实现 JWT 令牌签发与吊销,确保会话安全管理 - 配置不同环境 application.yml 及配置,支持多租户和灵活缓存配置 - 增加 .gitignore 规则,屏蔽构建产物、IDE 文件和敏感配置 - 引入 AuthProperties 以配置登录与验证码策略参数
33 lines
1.1 KiB
Docker
33 lines
1.1 KiB
Docker
# ---------- 构建阶段:JDK 25 + Maven ----------
|
|
FROM maven:3.9-eclipse-temurin-25 AS build
|
|
WORKDIR /build
|
|
|
|
# 先只复制 pom,利用镜像层缓存加速依赖下载
|
|
COPY pom.xml .
|
|
RUN mvn -B -ntp dependency:go-offline
|
|
|
|
COPY src ./src
|
|
RUN mvn -B -ntp clean package -DskipTests
|
|
|
|
# ---------- 运行阶段:JRE 25 ----------
|
|
FROM eclipse-temurin:25-jre-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
RUN mkdir -p /app/logs /app/config && chmod 755 /app/logs /app/config
|
|
|
|
COPY --from=build /build/target/iam-api-*.jar app.jar
|
|
|
|
ENV TZ=Asia/Shanghai \
|
|
SPRING_PROFILES_ACTIVE=prod \
|
|
# netty 4.1 仍使用 sun.misc.Unsafe 内存访问,JDK 25 下显式放行以消除告警
|
|
# -Duser.timezone 独立于操作系统时区库,避免 alpine 镜像里 TZ 不生效导致时间写入 UTC
|
|
JAVA_OPTS="-XX:MaxRAMPercentage=75 -XX:+UseG1GC --sun-misc-unsafe-memory-access=allow -Duser.timezone=Asia/Shanghai"
|
|
|
|
EXPOSE 8900
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=60s --retries=3 \
|
|
CMD wget --no-verbose --tries=1 --spider http://localhost:8900/actuator/health || exit 1
|
|
|
|
ENTRYPOINT ["sh", "-c", "exec java $JAVA_OPTS -jar app.jar"]
|