Browse Source

dockerfile

231250141 8 months ago
parent
commit
6d1e91a56d
2 changed files with 43 additions and 0 deletions
  1. 9 0
      .dockerignore
  2. 34 0
      Dockerfile

+ 9 - 0
.dockerignore

@@ -0,0 +1,9 @@
+target/
+.git/
+.gitignore
+*.md
+.idea/
+*.iml
+mvnw
+mvnw.cmd
+.mvn/

+ 34 - 0
Dockerfile

@@ -0,0 +1,34 @@
+# ============================================
+# 阶段一:构建阶段
+# ============================================
+FROM maven:3.9.11-eclipse-temurin-17 AS builder
+
+WORKDIR /app
+
+# 先只复制 pom.xml,利用 Docker 缓存层加速依赖下载
+COPY pom.xml .
+RUN mvn dependency:go-offline -B
+
+# 复制源码并打包
+COPY src ./src
+RUN mvn clean package -DskipTests -B
+
+# ============================================
+# 阶段二:运行阶段(精简镜像)
+# ============================================
+FROM eclipse-temurin:17-jre-jammy
+
+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/Smart-Review-Backend-2.0.jar app.jar
+
+# 暴露端口
+EXPOSE 8080
+
+# 启动命令,激活 prod 配置
+ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "-Djava.security.egd=file:/dev/./urandom", "app.jar"]