diff --git a/Dockerfile b/Dockerfile index b631aa4..1c0e2bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -111,7 +111,7 @@ ENV SPRING_PROFILES_ACTIVE=prod # 创建应用用户和目录 RUN addgroup -g 1001 app \ - && adduser -D -s /bin/sh -u 1001 -G app app \ + && adduser -D -s /bin/sh -u 1001 app \ && mkdir -p /app/data/upload \ && mkdir -p /app/data/temp \ && mkdir -p /app/data/unzip \ diff --git a/Dockerfile.backup b/Dockerfile.backup deleted file mode 100644 index 830eba1..0000000 --- a/Dockerfile.backup +++ /dev/null @@ -1,87 +0,0 @@ -# ===== 构建阶段 ===== -# 使用Maven镜像进行构建 -FROM maven:3.8.4-openjdk-8-slim AS builder - -# 设置工作目录 -WORKDIR /build - -# 复制settings.xml和pom.xml文件 -COPY settings.xml /root/.m2/ -COPY pom.xml . - -# 设置Maven仓库权限 -RUN mkdir -p /root/.m2/repository && \ - chown -R root:root /root/.m2 - -# 下载依赖(利用Docker缓存层和国内镜像) -RUN mvn dependency:go-offline -B -s /root/.m2/settings.xml - -# 复制源代码 -COPY src ./src - -# 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml - -# ===== 运行阶段 ===== -# 使用OpenJDK 8作为基础镜像 -FROM openjdk:8-jre-alpine AS runtime - -# 设置维护者信息 -LABEL maintainer="digital-archive-team" - -# 添加Alpine国内镜像源 -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ - sed -i 's/https\:\/\/dl-cdn.alpinelinux.org/https:\/\/mirrors.aliyun.com/g' /etc/apk/repositories - -# 更新包索引并安装必要的系统依赖和Tesseract OCR -RUN apk update && \ - apk add --no-cache \ - tesseract \ - tesseract-data-chi_sim \ - tesseract-data-chi_tra \ - tesseract-data-eng \ - tesseract-ocr \ - tini \ - curl \ - bash \ - && rm -rf /var/cache/apk/* - -# 设置环境变量 -ENV JAVA_OPTS="-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200" -ENV SPRING_PROFILES_ACTIVE=prod - -# 创建应用用户和目录 -RUN addgroup -g 1001 app \ - && adduser -D -s /bin/sh -u 1001 -G app app \ - && mkdir -p /app/data/upload \ - && mkdir -p /app/data/temp \ - && mkdir -p /app/data/unzip \ - && mkdir -p /app/data/images \ - && mkdir -p /app/data/reports \ - && mkdir -p /app/logs \ - && chown -R app:app /app - -# 设置工作目录 -WORKDIR /app - -# 从构建阶段复制jar文件 -COPY --from=builder /build/target/point-strategy-*.jar app.jar - -# 复制配置文件(如果需要覆盖默认配置) -# COPY application-prod.yml application-prod.yml - -# 切换到非root用户 -USER app - -# 健康检查 -HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ - CMD curl -f http://localhost:9081/point-strategy/actuator/health || exit 1 - -# 暴露端口 -EXPOSE 9081 - -# 使用tini作为init进程 -ENTRYPOINT ["/sbin/tini", "--"] - -# 启动应用 -CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"] \ No newline at end of file diff --git a/Dockerfile.optimized b/Dockerfile.optimized deleted file mode 100644 index cf6ea31..0000000 --- a/Dockerfile.optimized +++ /dev/null @@ -1,98 +0,0 @@ -# ===== 构建阶段 ===== -# 使用更轻量的Maven镜像 -FROM maven:3.8.4-openjdk-8-alpine AS builder - -# 安装必要的工具 -RUN apk add --no-cache curl bash - -# 设置工作目录 -WORKDIR /build - -# 复制settings.xml和pom.xml文件 -COPY settings.xml /root/.m2/ -COPY pom.xml . - -# 设置Maven仓库权限 -RUN mkdir -p /root/.m2/repository && \ - chown -R root:root /root/.m2 - -# 创建Maven配置目录 -RUN mkdir -p /root/.m2 - -# 配置Maven wrapper(如果项目有使用) -# COPY .mvn/wrapper/maven-wrapper.jar /root/.m2/wrapper/ -# COPY .mvn/wrapper/maven-wrapper.properties /root/.m2/wrapper/ - -# 下载依赖(利用Docker缓存层和国内镜像) -RUN mvn dependency:go-offline -B -s /root/.m2/settings.xml - -# 复制源代码 -COPY src ./src - -# 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml - -# ===== 运行阶段 ===== -# 使用OpenJDK 8作为基础镜像 -FROM openjdk:8-jre-alpine AS runtime - -# 设置维护者信息 -LABEL maintainer="digital-archive-team" - -# 添加Alpine国内镜像源 -RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ - sed -i 's/https\:\/\/dl-cdn.alpinelinux.org/https:\/\/mirrors.aliyun.com/g' /etc/apk/repositories - -# 更新包索引并安装必要的系统依赖和Tesseract OCR -RUN apk update && \ - apk add --no-cache \ - tesseract \ - tesseract-data-chi_sim \ - tesseract-data-chi_tra \ - tesseract-data-eng \ - tesseract-ocr \ - tini \ - curl \ - bash \ - && rm -rf /var/cache/apk/* - -# 设置环境变量 -ENV JAVA_OPTS="-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200" -ENV SPRING_PROFILES_ACTIVE=prod - -# 创建应用用户和目录 -RUN addgroup -g 1001 app \ - && adduser -D -s /bin/sh -u 1001 -G app app \ - && mkdir -p /app/data/upload \ - && mkdir -p /app/data/temp \ - && mkdir -p /app/data/unzip \ - && mkdir -p /app/data/images \ - && mkdir -p /app/data/reports \ - && mkdir -p /app/data/elasticsearch \ - && mkdir -p /app/logs \ - && chown -R app:app /app - -# 设置工作目录 -WORKDIR /app - -# 从构建阶段复制jar文件 -COPY --from=builder /build/target/point-strategy-*.jar app.jar - -# 复制配置文件(如果需要覆盖默认配置) -# COPY application-prod.yml application-prod.yml - -# 切换到非root用户 -USER app - -# 健康检查 -HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ - CMD curl -f http://localhost:9081/point-strategy/actuator/health || exit 1 - -# 暴露端口 -EXPOSE 9081 - -# 使用tini作为init进程 -ENTRYPOINT ["/sbin/tini", "--"] - -# 启动应用 -CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"] \ No newline at end of file diff --git a/Dockerfile.robust b/Dockerfile.robust deleted file mode 100644 index ce5a0e4..0000000 --- a/Dockerfile.robust +++ /dev/null @@ -1,103 +0,0 @@ -# ===== 构建阶段 ===== -# 使用Maven镜像进行构建 -FROM maven:3.8.4-openjdk-8-slim AS builder - -# 设置工作目录 -WORKDIR /build - -# 复制settings.xml和pom.xml文件 -COPY settings.xml /root/.m2/ -COPY pom.xml . - -# 设置Maven仓库权限 -RUN mkdir -p /root/.m2/repository && \ - chown -R root:root /root/.m2 - -# 下载依赖(利用Docker缓存层和国内镜像) -RUN mvn dependency:go-offline -B -s /root/.m2/settings.xml - -# 复制源代码 -COPY src ./src - -# 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml - -# ===== 运行阶段 ===== -# 使用OpenJDK 8作为基础镜像 -FROM openjdk:8-jre-alpine AS runtime - -# 设置维护者信息 -LABEL maintainer="digital-archive-team" - -# 先更新Alpine包管理器并安装ca-certificates -RUN apk update && \ - apk add --no-cache ca-certificates && \ - update-ca-certificates - -# 配置Alpine镜像源(使用阿里云镜像) -RUN echo "https://mirrors.aliyun.com/alpine/v3.18/main/" > /etc/apk/repositories && \ - echo "https://mirrors.aliyun.com/alpine/v3.18/community/" >> /etc/apk/repositories - -# 清理缓存并重新更新 -RUN rm -rf /var/cache/apk/* && \ - rm -rf /var/cache/apk/* - -# 更新包索引 -RUN apk update - -# 安装必要的系统依赖和Tesseract OCR -RUN apk add --no-cache \ - tesseract \ - tesseract-data-chi_sim \ - tesseract-data-chi_tra \ - tesseract-data-eng \ - tesseract-ocr \ - tini \ - curl \ - bash \ - && rm -rf /var/cache/apk/* - -# 验证安装 -RUN tesseract --version && \ - curl --version - -# 设置环境变量 -ENV JAVA_OPTS="-Xmx2g -Xms1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200" -ENV SPRING_PROFILES_ACTIVE=prod - -# 创建应用用户和目录 -RUN addgroup -g 1001 app \ - && adduser -D -s /bin/sh -u 1001 -G app app \ - && mkdir -p /app/data/upload \ - && mkdir -p /app/data/temp \ - && mkdir -p /app/data/unzip \ - && mkdir -p /app/data/images \ - && mkdir -p /app/data/reports \ - && mkdir -p /app/data/elasticsearch \ - && mkdir -p /app/logs \ - && chown -R app:app /app - -# 设置工作目录 -WORKDIR /app - -# 从构建阶段复制jar文件 -COPY --from=builder /build/target/point-strategy-*.jar app.jar - -# 复制配置文件(如果需要覆盖默认配置) -# COPY application-prod.yml application-prod.yml - -# 切换到非root用户 -USER app - -# 健康检查 -HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \ - CMD curl -f http://localhost:9081/point-strategy/actuator/health || exit 1 - -# 暴露端口 -EXPOSE 9081 - -# 使用tini作为init进程 -ENTRYPOINT ["/sbin/tini", "--"] - -# 启动应用 -CMD ["sh", "-c", "java $JAVA_OPTS -jar app.jar"] \ No newline at end of file