首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker容器中的r应用程序:无法下载PDF报告(错误:没有此类文件或目录)

Docker容器中的r应用程序:无法下载PDF报告(错误:没有此类文件或目录)
EN

Stack Overflow用户
提问于 2018-11-04 07:00:11
回答 1查看 610关注 0票数 1

我一直在为一个R应用程序构建一个坞容器,并在下载PDF报告时不断地遇到错误。PDF报表函数在本地机器上的R中工作得很好,但是当容器化时,它会抛出下面的错误。我尝试过强制安装特定的软件包,即Knitr和Rmarkdown,就像其他问题提到的那样,但是它仍然显示出相同的错误。Chrome下载中的文件简单地写着“失败-服务器问题”。我已经用这个应用程序测试了CSV文件的下载,所以我认为这是一个生成和下载标记PDF报告的问题。

我已经包括了构建Dockerfile来协助。任何建议都会令人惊奇!

谢谢!

DOCKERFILE:

代码语言:javascript
复制
FROM openanalytics/r-base

MAINTAINER ________

# system libraries of general use
RUN apt-get update && apt-get install -y \
    sudo \
    pandoc \
    pandoc-citeproc \
    libcurl4-gnutls-dev \
    libcairo2-dev \
    libxt-dev \
    libssl-dev \
    libssh2-1-dev \
    libxml2-dev \
    libssl1.0.0 \
    libpq-dev \
    git \
    texlive-full \
    html-xml-utils \
    libv8-3.14-dev

# system library dependency for the app

RUN apt-get update

# install packages for R

RUN R -e "install.packages(c('hms','devtools'), repos='https://cloud.r- 
project.org/')"

RUN R -e "require(devtools)"

RUN R -e "install.packages(c('car'), repos='https://cloud.r-project.org/')"

RUN R -e "devtools::install_version('readxl', version = '1.0.0', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('DT', version = '0.2', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('shinydashboard', version = '0.6.1', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('knitr', version = '1.18', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('magrittr', version = '1.5', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('ggrepel', version = '0.7.0', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('dplyr', version = '0.7.4', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('Rcpp', version = '0.12.14', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('rhandsontable', version = '0.3.4', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('shinyjs', version = '0.9.1', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('V8', version = '1.5', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('data.table', version = '1.10.4-3', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('packrat', version = '0.4.8-1', 
repos='https://cloud.r-project.org/')"
RUN R -e "devtools::install_version('zoo', version = '1.8-1', 
repos='https://cloud.r-project.org/')"
RUN R -e "install.packages('shiny', repos='https://cloud.r-project.org/')"
RUN wget https://github.com/rstudio/rmarkdown/archive/v1.8.tar.gz
RUN R CMD INSTALL v1.8.tar.gz
RUN R -e "install.packages('xml2', repos='https://cloud.r-project.org/')"
RUN R -e "install.packages('rvest', repos='https://cloud.r-project.org/')"
RUN wget https://cran.r- 
project.org/src/contrib/Archive/kableExtra/kableExtra_0.3.0.tar.gz
RUN R CMD INSTALL kableExtra_0.3.0.tar.gz

# copy the app to the image
RUN mkdir /root/tsk
COPY tsk /root/tsk

COPY Rprofile.site /usr/lib/R/etc/

EXPOSE 3838

CMD ["R", "-e", "shiny::runApp('/root/tsk')"]

来自码头的错误:

代码语言:javascript
复制
Listening on http://0.0.0.0:3838
Warning in normalizePath(path, winslash = winslash, mustWork = mustWork) :
  path[1]="/tmp/RtmpMu8ezy/TSK.Rmd": No such file or directory
Warning: Error in tools::file_path_as_absolute: file '/tmp/RtmpMu8ezy/TSK.Rmd' 
does not exist
  [No stack trace available]
Warning in normalizePath(path, winslash = winslash, mustWork = mustWork) :
  path[1]="/tmp/RtmpMu8ezy/TSK.Rmd": No such file or directory
Warning: Error in tools::file_path_as_absolute: file '/tmp/RtmpMu8ezy/TSK.Rmd' 
does not exist
  [No stack trace available]
Warning in normalizePath(path, winslash = winslash, mustWork = mustWork) :
  path[1]="/tmp/RtmpMu8ezy/TSK.Rmd": No such file or directory
Warning: Error in tools::file_path_as_absolute: file '/tmp/RtmpMu8ezy/TSK.Rmd' 
does not exist
  [No stack trace available]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-05 09:42:27

只需将文件名从tsk.Rmd更改为TSK.Rmd --原因是在IDE中的OSX上总是进行测试,它不会抛出任何错误,但是当使用区分大小写的Ubuntu构建容器时,它无法找到标记文件。

当使用不同的操作系统构建时,一定要检查系统是否区分大小写!一个容易犯的错误!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53138504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档