我有一个R水暖工服务器,我想使用docker容器运行,到目前为止,我在dockerfile
中有此配置
FROM rocker/r-ver:3.5.0
#update OS and install linux libraries needed to run plumber
RUN apt-get update -qq && apt-get install -y \
libssl-dev \
libcurl4-gnutls-dev
#load in dependencies from 00_Libraries.R file
RUN R -e "install.packages('plumber')"
#Copy all files from current directory
COPY / /
#Expose port :80 for traffic
EXPOSE 80
#when the container starts, start the runscript.R script
ENTRYPOINT ["Rscript", "runscript.R"]
在我的runscript.R文件中,我的服务器配置如下:
pr <- plumber::plumb("/home/kristoffer/Desktop/plumber-api/rfiles/plumber.R")$run(port=8000)
每当我尝试运行docker映像时,都会出现此错误:
File does not exist: /home/kristoffer/Desktop/plumber-api/rfiles/plumber.R
Execution halted
我已经确保所有必要的文件都位于正确的目录中。
编辑: 我在目录中包含了所有文件的映像,以确保dockerfile与其他文件位于同一目录中
答案 0 :(得分:2)
您要复制/
下的所有内容,将复制命令更改为:
COPY . .
并确保Dockerfile
在同一目录中。
在此旁边:
plumber::plumb("/home/kristoffer/Desktop/plumber-api/rfiles/plumber.R")
也将不起作用,因为路径不在您的容器中,请将其更改为:
plumber::plumb("plumber.R")
如果此文件位于同一目录中