novel-reader/Dockerfile.china
2025-12-06 18:19:46 +08:00

51 lines
1.2 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 国内镜像版本 - 使用阿里云镜像源
# 使用方法: 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 '<?xml version="1.0" encoding="UTF-8"?>\n\
<settings>\n\
<mirrors>\n\
<mirror>\n\
<id>aliyun</id>\n\
<mirrorOf>central</mirrorOf>\n\
<url>https://maven.aliyun.com/repository/public</url>\n\
</mirror>\n\
</mirrors>\n\
</settings>' > /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"]