使用 rocker/verse 和 shiny 时安装 beamer.cls

Installing beamer.cls when using rocker/verse and shiny

我是 Docker 的新手并且是 TeX 的用户。

我正在使用 Docker文件

FROM shrektan/shiny

MAINTAINER Steven

RUN R -e "install.packages(c('shiny', 'googleAuthR', 'dplyr', 'googleAnalyticsR', 'knitr', 'rmarkdown', 'jsonlite', 'scales', 'ggplot2', 'reshape2', 'Cairo'), repos = 'https://cran.rstudio.com/')"

COPY app /srv/shiny-server/

EXPOSE 3838

到 运行 一个闪亮的应用程序,允许用户 run/download 一个 beamer_presentation .pdf 报告。

使用上面的 Docker 文件,应用程序 运行 很好,所有功能都存在,但是我收到一个错误提示 beamer.cls 没有安装(我只包括了相关部分):

[...]
processing file: GA_report.Rmd
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
`geom_smooth()` using method = 'loess' and formula 'y ~ x' 
output file: GA_report.knit.md

tlmgr search --file --global '/beamer.cls'
tlmgr: Remote repository is newer than local (2017 < 2018)
Cross release updates are only supported with
update-tlmgr-latest(.sh/.exe) --update
Please see https://tug.org/texlive/upgrade.html for details.
Warning: running command ''tlmgr' search --file --global '/beamer.cls'' had 
status 1
! LaTeX Error: File `beamer.cls' not found.

! Emergency stop.
<read *> 

Warning: Error in : Failed to compile /tmp/RtmpmiHjqW/file185881070c.tex. See 
file185881070c.log for more info.
[No stack trace available]

我在尝试确定如何将 beamer.cls 安装到此 docker 图像时迷路了。

上面的 docker 文件由图像 built from this Dockerfile which in turn is built from the rocker/verse Dockerfile here.

组成

顶部的 rocker/verse Dockerfile, the author clearly states that they're using a "dummy" version of TexLive and suggests that FAQ 8 here 提供了更多信息。 FAQ link 提供了如何安装软件包但不安装 class 的示例,即 beamer.cls.

虽然我是 Docker 的新手,但我不知道应该如何将 beamer.cls 安装到我的 Docker 图像。我觉得我提供的错误日志中有一些非常有用的东西,但是有人可以指出我遗漏了什么吗?

原则上加上

应该就够了
RUN tlmgr install beamer translator

给你的Dockerfile。不幸的是,这不能直接工作,因为 shrektan/shiny 图像已经几个月没有更新并且仍在使用 TexLive 2017(和 R 3.4.4)。基础 rocker/verse iamge 同时使用 TL 2018 和 R 3.5.1。虽然 workaround "TL to old" 问题是可能的,但我建议要么要求维护者重建 shrektan/shiny,自己重建它,要么在你自己的 [=11= 中包含必要的部分] 基于 rocker/verse

我是 shrektan/shiny 的作者。 docker 图像已存档,不再维护。该图像不包括 LaTeX 引擎,这可能是您遇到问题的原因。

无论如何,您可以尝试 rocker/verse 或我的新图像 shrektan/rdocker4shinyserver(类似于 rocker/verse,但预装了更多软件包。Github https://github.com/shrektan/rdocker )

此图片包含 Tinytex,应该可以解决您的问题)。