Pandoc 退出代码 7 到 html 文档的转换错误(在 Dockerized 环境中使用 Rmarkdown、Flexdashboard &knitr)

Pandoc exit code 7 conversion error to html document (using Rmarkdown, Flexdashboard &knitr in Dockerized environment)

我正在使用 Pandoc 将 Rmarkdown 文档转换为 html 文档。

rmarkdown::render('ReportTemp.Rmd', output_file = paste0('TestDocument', '_', filename_invoice, '.html'),
                    envir = new.env(parent = globalenv()),
                    run_pandoc = TRUE) 

这在 运行 Rstudio 本地时工作正常。但是当 运行 在 dockerized 设置中编织部分似乎运行良好时,但随后我收到了这个奇怪的错误消息。


output file: ReportTemp.knit.md

/usr/bin/pandoc +RTS -K512m -RTS ReportTemp.utf8.md --to html4 --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output Report_fake.html --email-obfuscation none --standalone --section-divs --template /usr/local/lib/R/site-library/flexdashboard/rmarkdown/templates/flex_dashboard/resources/default.html --variable 'theme:cosmo' --include-in-header /tmp/Rtmp95MPQt/rmarkdown-str179e2a9e3.html --mathjax --variable 'mathjax-url:ReportTemp_fake_files/mathjax-local/MathJax.js?config=TeX-AMS-MML_HTMLorMML' --metadata pagetitle=DocssReportTemp.utf8.md --include-in-header /tmp/Rtmp95MPQt/file17545e146html --highlight-style pygments --include-before-body /tmp/Rtmp95MPQt/file1515f007c.html --include-after-body /tmp/Rtmp95MPQt/file15bd062c2.html

Error : pandoc document conversion failed with error 7

我在 pandoc 手册中找不到关于此退出代码 7 的任何内容。它似乎根本不存在。

它似乎生成了正确的 md.-格式,但未能将其转换为 html-文档。

有谁知道这段代码以及发生了什么事吗?

我个人认为这与Rstudio调用pandoc的方式和平台R-base在About Pandoc & Rstudio

上运行有关

Rstudio 似乎有一个旧版本的 Pandoc (1.12.x)。这是否意味着较新版本的 pandoc (2.x) 不适用于 Rmarkdown 2.1.x?

在本地,在 Rstudio 中我有

  1. R-base v3.6.3
  2. 平台:x86_64-w64-mingw32
  3. Rmarkdown v2.1;
  4. Knitr v1.28
  5. Flexdashboard V0.5.1.1
  6. Pandoc V2.9.2.1(这是一个单独的安装,可能是 Rstudio 使用了我不知道的不同版本)。

在 docker 我使用的图像中:

  1. R-base v3.6.3
  2. 平台:x86_64-pc-linux-gnu
  3. Rmarkdown v2.1
  4. Knitr v1.28
  5. Flexdashboard V0.5.1.1
  6. Pandoc V2.5

如有任何帮助,我们将不胜感激!

最终还是和我在R脚本开头声明/设置的环境变量有关。仍然不确定它为什么调用退出代码 7(以及此代码的含义)。但我很高兴它没有再次发生。