我在运行docker run ...时遇到了与读取文件相关的错误,而这个闪亮的应用程序在Rstudio中运行得很好。
所有数据(输入表)、闪亮的应用程序.R文件和Docker文件都在同一个文件夹中。
第一行闪亮的应用程序,我在docker运行时出错了:
gene<-data.frame(data.table::fread('PCR_Gene_CP.GZ.csv'))
Docker文件是:
# get shiny packages image
FROM rocker/shiny:latest
#system libraries of general use
## install debian packages
RUN apt-get update -qq && apt-get -y --no-install-recommends install libxml2-dev libcairo2-dev
libsqlite3-dev libmariadbd-dev libpq-dev libssh2-1-dev unixodbc-dev libcurl4-openssl-dev libssl-dev
## update system libraries
RUN apt-get update && apt-get upgrade -y && apt-get clean
# install R packages required
# (change it dependeing on the packages you need)
RUN R -e "install.packages(pkgs=c('shiny','ggplot2','data.table','DT','dplyr','tidyr','tibble','VennDiagram'), repos='http://cran.rstudio.com/')"
COPY /app.R /app.R
# expose port
EXPOSE 3838
# run app on container start
CMD ["R", "-e", "shiny::runApp('/app.R', host = '0.0.0.0', port = 3838)"]运行Docker生成、运行和日志:
docker build -t enhancer .
docker run -p 8081:3838 --name enhancer -d enhancer
docker logs -t enhancer

发布于 2022-05-20 17:38:26
您的大部分Dockerfile正在执行包安装(无论是从Linux还是从我认为是R模块的存储库)。从您自己的代码目录中复制的唯一内容是这个文件:
COPY /app.R /app.R因为csv文件没有复制到图像中,所以它不存在,因此应用程序无法打开它。
如果您只需要这一个数据文件,可以通过更改复制行来解决这个问题:
COPY app.R PCR_Gene_CP.GZ.csv /将R文件和cvs文件复制到图像中的/。
如果图像中必须有其他数据文件(或任何其他文件),则可以在其中添加更多文件。您还可以复制所有内容:
COPY . /或者可以使用各种通配符来匹配多个文件。在这里可以找到更多的文档:
https://stackoverflow.com/questions/72322630
复制相似问题