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