Dockerfile 1.0 KB

1234567891011121314151617181920212223242526
  1. # 使用 OpenJDK 21 基础镜像
  2. FROM eclipse-temurin:21-jdk-jammy
  3. # 设置工作目录
  4. WORKDIR /app
  5. # 设置时区
  6. ENV TZ=Asia/Riyadh
  7. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  8. # 复制构建好的 JAR 文件到容器中
  9. COPY target/centreproject-admin.jar app.jar
  10. # 暴露端口 (根据你的实际配置调整)
  11. EXPOSE 8080
  12. # 设置 JVM 参数,启用虚拟线程
  13. # 关键参数:
  14. # --enable-preview: 启用预览功能(JDK21中虚拟线程仍为预览功能)
  15. # -Dspring.threads.virtual.enabled=true: 启用Spring的虚拟线程支持
  16. # -Djdk.tracePinnedThreads=full: 跟踪被pin住的线程(调试用)
  17. # -Djdk.virtualThreadScheduler.parallelism=1: 虚拟线程调度器并行度(根据CPU核心数调整)
  18. ENV JAVA_OPTS="--enable-preview -Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom -Dspring.threads.virtual.enabled=true -Djdk.tracePinnedThreads=full -Djdk.virtualThreadScheduler.parallelism=1"
  19. # 启动应用
  20. ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} -jar app.jar"]