You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于pandoc/extra镜像自定义Dockerfile,实现自定义PDF构建

解决方案:基于Pandoc Docker镜像实现跨平台PDF构建

以下是两种适配你的需求的实践方案,从快速上手到团队标准化使用都有覆盖:


方案一:直接用官方镜像+本地目录挂载(无需自定义镜像)

适合快速验证,不用修改Dockerfile,直接利用官方镜像的环境运行你的脚本:

  1. 准备本地目录结构
    确保你的TEST目录结构如下:
TEST/
├── build.sh
├── TEST-eisvogel.tex
├── TEST-includes.txt
├── 00-preamble.md
├── 01-intro.md
├── 02-linux.md
├── ...
  1. 给脚本添加执行权限
    在本地终端执行:
chmod +x ./TEST/build.sh
  1. 运行Docker命令生成PDF
    切换到TEST目录的上级目录,执行以下命令:
docker run --rm -v "$(pwd)/TEST:/workdir" pandoc/extra:latest-ubuntu /workdir/build.sh
  • --rm:容器执行完成后自动删除,避免残留
  • -v "$(pwd)/TEST:/workdir":把本地TEST目录挂载到容器内的/workdir路径
  • 最后指定容器内要执行的脚本路径

执行完成后,生成的TEST-v0.1.pdf会直接出现在本地TEST目录中。


方案二:自定义Docker镜像(团队标准化使用)

把你的脚本、模板打包进镜像,团队成员无需关注细节,直接运行镜像即可生成PDF:

  1. 创建自定义Dockerfile
    在TEST目录下新建Dockerfile,内容如下:
# 基于官方pandoc/extra镜像
FROM pandoc/extra:latest-ubuntu

# 设置容器内的工作目录
WORKDIR /workdir

# 复制本地的脚本和模板到容器内
COPY build.sh ./
COPY TEST-eisvogel.tex ./

# 给脚本添加执行权限
RUN chmod +x build.sh

# 可选:如果eisvogel模板需要额外LaTeX包,添加以下安装命令
RUN apt-get update && apt-get install -y --no-install-recommends \
    texlive-latex-extra \
    texlive-fonts-extra \
    && rm -rf /var/lib/apt/lists/*
  1. 构建自定义镜像
    在TEST目录下执行:
docker build -t pandoc-custom-pdf:latest .
  • pandoc-custom-pdf:latest是你自定义的镜像名称,可按需修改
  1. 团队成员使用方式
    成员只需把自己的Markdown文件和TEST-includes.txt放在本地某个目录(比如my-docs),然后执行:
docker run --rm -v "$(pwd)/my-docs:/workdir" pandoc-custom-pdf:latest

生成的PDF会直接输出到本地my-docs目录中。


优化建议

  • 灵活输出文件名:修改build.sh,支持传入自定义输出文件名参数,比如:
    # 将脚本中的-o "./TEST-v0.1.pdf"改为
    -o "${1:-./output.pdf}"
    
    这样成员可以通过docker run ... pandoc-custom-pdf:latest my-report.pdf指定输出文件名
  • 私有镜像仓库:把自定义镜像推送到公司私有镜像仓库,团队成员无需本地构建,直接pull后使用
  • 调试技巧:如果编译报错,可进入容器手动排查:
    docker run --rm -it pandoc-custom-pdf:latest bash
    

内容的提问来源于stack exchange,提问作者Kerry Cox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 16:20:58