BGdo's picture
Update Dockerfile
1ad3bdb verified
Raw History Blame Contribute Delete
3.08 kB
# 使用 ghcr.io/awwaawwa/pdfmathtranslate:dev 作为基础镜像
# 这个镜像应该已经包含了 pdf2zh 及其运行环境
FROM ghcr.io/awwaawwa/pdfmathtranslate:dev
# 设置工作目录,如果基础镜像没有设置或者你需要特定的工作目录
# 如果基础镜像已经设置了合适的工作目录,这行可能不需要
WORKDIR /app
# 设置环境变量 PYTHONUNBUFFERED=1
# 这对于在 Docker 中运行 Python 应用通常是个好习惯,可以确保日志直接输出
# 基础镜像可能已经设置了此环境变量
ENV PYTHONUNBUFFERED=1
# 切换到 root 用户,确保后续指令和容器运行时具有最高权限
# 这有助于避免在容器内部发生文件权限问题
USER root
# 创建必要的目录并设置权限
# 如果这些目录是用于挂载卷或者运行时数据,并且基础镜像没有创建它们,那么这些指令可能仍然需要。
# 注意:chmod -R 777 给予了非常宽松的权限。虽然以 root 用户运行可以解决进程本身的访问问题,
# 但这种权限设置在生产环境中需要谨慎评估,因为它允许任何用户对这些目录进行读、写、执行操作。
# 原 Dockerfile 中的 `./gradio_files` 是相对于 WORKDIR (/app) 的,所以这里是 /app/gradio_files。
# 新增 /app/pdf2zh_files 目录创建和权限设置
RUN mkdir -p /data \
&& mkdir -p /.cache \
&& mkdir -p /app/gradio_files \
&& mkdir -p /.config/PDFMathTranslate \
&& mkdir -p /app/pdf2zh_files \
&& chmod -R 777 /data \
&& chmod -R 777 /.cache \
&& chmod -R 777 /app/gradio_files \
&& chmod -R 777 /.config \
&& chmod -R 777 /app/pdf2zh_files
# 创建配置文件并添加基本配置
# 如果你需要覆盖基础镜像中的默认配置,或者基础镜像需要这个配置文件,那么这个步骤是必要的。
# 请确保 /.config/PDFMathTranslate/config.json 这个路径对于基础镜像来说是正确的。
# chmod 666 允许所有用户读写该文件。
RUN echo '{"USE_MODELSCOPE": "0", "MODEL_CACHE_DIR": "/.cache"}' > /.config/PDFMathTranslate/config.json \
&& chmod 666 /.config/PDFMathTranslate/config.json
# 设置默认的容器启动命令
# 基础镜像 ghcr.io/awwaawwa/pdfmathtranslate:dev 可能已经有自己的 CMD 或 ENTRYPOINT。
# 如果你想覆盖它,或者确保执行这个特定的命令,可以保留这行。
# 由于上面设置了 USER root,此命令将以 root 用户身份执行。
#CMD ["pdf2zh", "-i"]
# --- 以下是原 Dockerfile 中的一些指令,在使用新的基础镜像后,它们很可能不再需要 ---
#
# # 系统依赖
# RUN apt-get update && apt-get install -y libgl1 \
# && rm -rf /var/lib/apt/lists/*
# # 解释:系统依赖 libgl1 应该已经包含在基础镜像 ghcr.io/awwaawwa/pdfmathtranslate:dev 中(如果它需要的话)。
#
# # 安装最新版本的 pdf2zh
# RUN pip install --no-cache-dir pdf2zh==1.9.5
# # 解释:pdf2zh 工具本身就是基础镜像 ghcr.io/awwaawwa/pdfmathtranslate:dev 提供的核心功能,所以不需要再安装。
#