我一直在为一个R应用程序构建一个坞容器,并在下载PDF报告时不断地遇到错误。PDF报表函数在本地机器上的R中工作得很好,但是当容器化时,它会抛出下面的错误。我尝试过强制安装特定的软件包,即Knitr和Rmarkdown,就像其他问题提到的那样,但是它仍然显示出相同的错误。Chrome下载中的文件简单地写着“失败-服务器问题”。我已经用这个应用程序测试了CSV文件的下载,所以我认为这是一个生成和下载标记PDF报告的问题。
我已经包括了构建Dockerfile来协助。任何建议都会令人惊奇!
谢谢!
DOCKERFILE:
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')"]来自码头的错误:
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]发布于 2018-11-05 09:42:27
只需将文件名从tsk.Rmd更改为TSK.Rmd --原因是在IDE中的OSX上总是进行测试,它不会抛出任何错误,但是当使用区分大小写的Ubuntu构建容器时,它无法找到标记文件。
当使用不同的操作系统构建时,一定要检查系统是否区分大小写!一个容易犯的错误!
https://stackoverflow.com/questions/53138504
复制相似问题