# 使用Ubuntu 20.04作为基础镜像，提供更好的兼容性和稳定性
FROM ubuntu:20.04 AS builder

# 设置环境变量，避免交互式安装
ENV DEBIAN_FRONTEND=noninteractive

# 更新软件包列表并安装必要的依赖
RUN apt-get update && apt-get install -y \
    wget \
    dpkg \
    libpng16-16 \
    libjpeg-turbo8 \
    libfontconfig1 \
    libfreetype6 \
    libglib2.0-0 \
    libxrender1 \
    libxext6 \
    && rm -rf /var/lib/apt/lists/*

# 下载并安装pdf2htmlEX
# 注意：pdf2htmlEX官方仓库已停止维护，这里使用的是已知稳定的版本
WORKDIR /tmp

# 下载pdf2htmlEX依赖包和主程序
RUN wget -q https://github.com/pdf2htmlEX/pdf2htmlEX/releases/download/v0.18.8.rc1/pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-focal-x86_64.deb

# 安装pdf2htmlEX
RUN dpkg -i pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-focal-x86_64.deb || apt-get -f install -y

# 清理临时文件
RUN rm -rf /tmp/*.deb

# 第二阶段：创建运行时镜像
FROM ubuntu:20.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1

# 安装运行时依赖
RUN apt-get update && apt-get install -y \
    python3 \
    python3-pip \
    libpng16-16 \
    libjpeg-turbo8 \
    libfontconfig1 \
    libfreetype6 \
    libglib2.0-0 \
    libxrender1 \
    libxext6 \
    && rm -rf /var/lib/apt/lists/*

# 从builder阶段复制pdf2htmlEX
COPY --from=builder /usr/bin/pdf2htmlEX /usr/bin/pdf2htmlEX
COPY --from=builder /usr/share/pdf2htmlEX /usr/share/pdf2htmlEX

# 创建工作目录
WORKDIR /app

# 复制Python脚本
COPY main.py .

# 设置卷，允许挂载外部目录
VOLUME [ "/app" ]

# 设置入口点，允许传递命令行参数
# 使用ENTRYPOINT + CMD组合，允许用户覆盖默认行为
ENTRYPOINT [ "python3", "/app/main.py" ]

# 默认命令（空参数，使用脚本默认值）
CMD [ ]
