|
@@ -1,17 +1,28 @@
|
|
|
# --- Stage 1: Build ---
|
|
# --- Stage 1: Build ---
|
|
|
FROM maven:3.9.0-eclipse-temurin-8 as mvn
|
|
FROM maven:3.9.0-eclipse-temurin-8 as mvn
|
|
|
WORKDIR /app
|
|
WORKDIR /app
|
|
|
|
|
+
|
|
|
|
|
+# 1. 复制 settings.xml
|
|
|
|
|
+COPY settings.xml /root/.m2/settings.xml
|
|
|
|
|
+
|
|
|
|
|
+# 2. 只复制 pom.xml 文件
|
|
|
|
|
+COPY pom.xml .
|
|
|
|
|
+
|
|
|
|
|
+# 3. 仅下载依赖。只要 pom.xml 不变,这一层就会被缓存
|
|
|
|
|
+RUN mvn dependency:go-offline
|
|
|
|
|
+
|
|
|
|
|
+# 4. 复制所有项目文件
|
|
|
COPY . .
|
|
COPY . .
|
|
|
|
|
+
|
|
|
|
|
+# 5. 执行打包(此时不会再下载依赖,速度很快)
|
|
|
RUN mvn clean package -DskipTests
|
|
RUN mvn clean package -DskipTests
|
|
|
|
|
|
|
|
# --- Stage 2: Runtime ---
|
|
# --- Stage 2: Runtime ---
|
|
|
FROM openjdk:8-jre-slim
|
|
FROM openjdk:8-jre-slim
|
|
|
WORKDIR /app
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
-# 只从构建阶段复制最终的 JAR 包
|
|
|
|
|
COPY --from=mvn /app/target/dalian-nft-api.jar app.jar
|
|
COPY --from=mvn /app/target/dalian-nft-api.jar app.jar
|
|
|
|
|
|
|
|
EXPOSE 8888
|
|
EXPOSE 8888
|
|
|
|
|
|
|
|
-# 启动命令保持不变
|
|
|
|
|
ENTRYPOINT ["java", "-jar", "app.jar"]
|
|
ENTRYPOINT ["java", "-jar", "app.jar"]
|