首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取Docker运行错误文件不存在或不可读.getwd=‘/’?

问获取Docker运行错误文件不存在或不可读.getwd=‘/’?
EN

Stack Overflow用户
提问于 2022-05-20 17:20:23
回答 1查看 119关注 0票数 0

我在运行docker run ...时遇到了与读取文件相关的错误,而这个闪亮的应用程序在Rstudio中运行得很好。

所有数据(输入表)、闪亮的应用程序.R文件和Docker文件都在同一个文件夹中。

第一行闪亮的应用程序,我在docker运行时出错了:

gene<-data.frame(data.table::fread('PCR_Gene_CP.GZ.csv'))

Docker文件是:

代码语言:javascript
复制
# 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生成、运行和日志:

代码语言:javascript
复制
docker build -t enhancer .
docker run -p 8081:3838 --name enhancer -d enhancer

docker logs -t enhancer

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-20 17:38:26

您的大部分Dockerfile正在执行包安装(无论是从Linux还是从我认为是R模块的存储库)。从您自己的代码目录中复制的唯一内容是这个文件:

代码语言:javascript
复制
COPY /app.R /app.R

因为csv文件没有复制到图像中,所以它不存在,因此应用程序无法打开它。

如果您只需要这一个数据文件,可以通过更改复制行来解决这个问题:

代码语言:javascript
复制
COPY app.R PCR_Gene_CP.GZ.csv /

将R文件和cvs文件复制到图像中的/。

如果图像中必须有其他数据文件(或任何其他文件),则可以在其中添加更多文件。您还可以复制所有内容:

代码语言:javascript
复制
COPY . /

或者可以使用各种通配符来匹配多个文件。在这里可以找到更多的文档:

https://docs.docker.com/engine/reference/builder/#copy

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

https://stackoverflow.com/questions/72322630

复制
相关文章

相似问题

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