# 使用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 [ ]