# 基础镜像 - 使用更轻量的slim版本
FROM openjdk:8-jre-slim

# 维护人
LABEL maintainer="zxm<2060197959@qq.com>"

# 创建目录
RUN mkdir -p /home/app

# 使用阿里云镜像源加速下载
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
    sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

# 精简安装必要的组件（只保留核心功能）
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        libreoffice-core \
        libreoffice-writer \
        libreoffice-l10n-zh-cn \
        fonts-wqy-microhei \
        fonts-wqy-zenhei \
        fontconfig \
        locales && \
    # 设置中文 locale
    echo "zh_CN.UTF-8 UTF-8" >> /etc/locale.gen && \
    locale-gen zh_CN.UTF-8 && \
    # 清理缓存和临时文件
    apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
    # 更新字体缓存
    fc-cache -f -v

# 设置环境变量
ENV LANG=zh_CN.UTF-8
ENV LANGUAGE=zh_CN:zh
ENV LC_ALL=zh_CN.UTF-8

# 验证安装（只保留必要的验证）
RUN echo "=== 验证字体安装 ===" && \
    fc-list :lang=zh | head -5 && \
    echo "=== 验证LibreOffice ===" && \
    libreoffice --version | head -1

# 拷贝项目jar（放在较晚的步骤，利用缓存）
COPY target/yd-oss-api-1.0-SNAPSHOT-exec.jar /home/app/yd-oss-api.jar

# 预生成JVM类数据共享文件，加速后续启动
RUN java -Xshare:dump -jar /home/app/yd-oss-api.jar || true

# 暴露端口
EXPOSE 9106

# 执行命令启动jar，使用优化的JVM参数
ENTRYPOINT ["java", \
    "-XX:+UseContainerSupport", \
    "-XX:InitialRAMPercentage=50.0", \
    "-XX:MaxRAMPercentage=80.0", \
    "-XX:+UseG1GC", \
    "-XX:+UseStringDeduplication", \
    "-XX:+TieredCompilation", \
    "-XX:TieredStopAtLevel=1", \
    "-Xshare:on", \
    "-jar", "/home/app/yd-oss-api.jar"]
