# 国内镜像版本 - 使用阿里云镜像源 # 使用方法: docker build -f Dockerfile.china -t novel-reader:latest . # 多阶段构建 - 构建阶段 FROM registry.cn-hangzhou.aliyuncs.com/acs/maven:3-jdk-8 AS builder WORKDIR /app # 配置Maven使用阿里云仓库 RUN mkdir -p /root/.m2 RUN echo '\n\ \n\ \n\ \n\ aliyun\n\ central\n\ https://maven.aliyun.com/repository/public\n\ \n\ \n\ ' > /root/.m2/settings.xml # 先复制pom.xml,利用Docker缓存下载依赖 COPY pom.xml . RUN mvn dependency:go-offline -B # 复制源代码并构建 COPY src ./src RUN mvn package -DskipTests -B # 运行阶段 FROM registry.cn-hangzhou.aliyuncs.com/acs/openjdk:8-jre WORKDIR /app # 设置时区为中国 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 从构建阶段复制jar包 COPY --from=builder /app/target/*.jar app.jar # 暴露端口 EXPOSE 8080 # JVM优化参数 ENV JAVA_OPTS="-Xms128m -Xmx256m -XX:+UseG1GC -XX:MaxGCPauseMillis=100" # 启动命令 ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]