From a418a680f6320a1724480e7c294c43b72ad451e7 Mon Sep 17 00:00:00 2001 From: wangtianqi <1350217033@qq.com> Date: Tue, 24 Jun 2025 10:27:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 48 ++++++------------------------------------------ 1 file changed, 6 insertions(+), 42 deletions(-) diff --git a/Dockerfile b/Dockerfile index c2df8c7..7c81b2c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,42 +1,6 @@ -# 使用多阶段构建优化镜像大小 - 修复FROM语句大小写 -FROM amazoncorretto:17-alpine-jdk AS builder - -# 设置工作目录 -WORKDIR /app - -# 设置Maven镜像源(提高下载速度) -RUN mkdir -p /root/.m2 && \ - echo '' > /root/.m2/settings.xml && \ - echo '' >> /root/.m2/settings.xml && \ - echo ' ' >> /root/.m2/settings.xml && \ - echo ' ' >> /root/.m2/settings.xml && \ - echo ' aliyun' >> /root/.m2/settings.xml && \ - echo ' Aliyun Central' >> /root/.m2/settings.xml && \ - echo ' https://maven.aliyun.com/repository/central' >> /root/.m2/settings.xml && \ - echo ' central' >> /root/.m2/settings.xml && \ - echo ' ' >> /root/.m2/settings.xml && \ - echo ' ' >> /root/.m2/settings.xml && \ - echo '' - -# 复制Maven配置文件和脚本(利用Docker缓存) -COPY pom.xml . -COPY .mvn .mvn -COPY mvnw . - -# 给mvnw脚本添加执行权限 -RUN chmod +x ./mvnw - -# 首先只下载依赖(利用Docker层缓存) -RUN ./mvnw dependency:resolve -B -q - -# 复制源代码 -COPY src ./src - -# 构建应用(简化构建过程) -RUN ./mvnw clean package -DskipTests -B -q - -# 运行时镜像 - 使用更小的Alpine镜像 -FROM amazoncorretto:17-alpine +# 方案3:使用本地已有的镜像(你的服务器上已有 amazoncorretto:17-alpine-jdk) +# 直接使用现有镜像作为运行时镜像,简化构建过程 +FROM amazoncorretto:17-alpine-jdk # 安装curl用于健康检查 RUN apk add --no-cache curl @@ -52,8 +16,8 @@ RUN addgroup -g 1000 spring && adduser -u 1000 -G spring -s /bin/sh -D spring # 创建应用目录 WORKDIR /app -# 从构建阶段复制jar文件 -COPY --from=builder /app/target/*.jar app.jar +# 直接复制已构建的jar文件(在Jenkins中已经通过Maven构建完成) +COPY target/*.jar app.jar # 创建日志目录 RUN mkdir -p /app/logs && chown -R spring:spring /app @@ -72,4 +36,4 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \ ENV JAVA_OPTS="-server -Xms256m -Xmx512m -XX:+UseG1GC -XX:+UseContainerSupport -XX:MaxRAMPercentage=75.0" # 启动应用 -ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar"] +ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar app.jar"] \ No newline at end of file