Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何让停靠的shinyapp从本地驱动器(主机上)加载数据_R_Docker_Shiny_Shiny Server_Shinyproxy - Fatal编程技术网

R 如何让停靠的shinyapp从本地驱动器(主机上)加载数据

R 如何让停靠的shinyapp从本地驱动器(主机上)加载数据,r,docker,shiny,shiny-server,shinyproxy,R,Docker,Shiny,Shiny Server,Shinyproxy,我做了一个简单的shinyapp。它从本地驱动器上的文件夹读取名为mydata.rds的数据集 我的本地驱动器上的数据每天都在更新 该应用程序在我的rstudio上作为独立应用程序运行得非常完美。下面是global.r文件 ## global.r library(shiny) data = readRDS("/path_to_local_folder/mydata.rds") 然后我成功地建立了shinyapp docker形象 我运行docker图像,如下所示。它不起作用 docke

我做了一个简单的shinyapp。它从本地驱动器上的文件夹读取名为
mydata.rds
的数据集

我的本地驱动器上的数据每天都在更新

该应用程序在我的rstudio上作为独立应用程序运行得非常完美。下面是
global.r
文件

## global.r
 library(shiny)
 data = readRDS("/path_to_local_folder/mydata.rds")  
然后我成功地建立了shinyapp docker形象

我运行docker图像,如下所示。它不起作用

docker run --rm  -p 80:80 myshinyapp
所以我尝试挂载本地文件夹,并像这样运行docker映像“

我在我的
localhost
上得到的是:

Index of/

 mydata.rds
有人知道为什么在上述两种情况下都会发生这种情况吗?我在增加音量时做错了什么

我想做的是将我的Docked shinyapp连接到某个每天都在更新的本地数据文件夹。我想做的是,当docker启动一个容器时,它会从主机上的数据文件夹加载数据。(实际上,我正试图用shinyproxy服务器在主机上托管我的应用程序)

非常感谢您对我如何实现这一目标的指导


注意:当我简单地将我的应用程序和数据打包到docker image中并运行它时,所有内容都会显示在docker image中。该应用程序工作正常。我的应用程序似乎没有任何问题。

当您将本地文件夹装载到容器中时,
/srv/shiny server/
中的文件夹将隐藏,直到您删除装载

因此,在启动容器后,您不必通过
docker cp
命令装载卷和复制文件,也不必修改shinyapp映像的Dockerfile以将所需文件从主机复制到映像wile building,以便在启动容器后找到它


或者按照说明操作。

将本地文件夹装载到容器时,
/srv/shinny server/
中的文件和文件夹将隐藏,直到您删除装载

因此,在启动容器后,您不必通过
docker cp
命令装载卷和复制文件,也不必修改shinyapp映像的Dockerfile以将所需文件从主机复制到映像wile building,以便在启动容器后找到它


或者按照说明进行操作。

这里没有看到真正的问题,错误是什么?可能是您从指向物理位置的绝对路径读取RDS文件,而不是从相对路径读取RDS文件吗?在停靠的shinyapp中,路径将是
/srv/shinny server/mydata.RDS
@mrrumble I edited需要更好解释的问题。@M抱怨我没有复制数据文件夹。因为我认为这会使容器变大,这不是一种有效的方法吗?我希望该应用程序是一个多用户可扩展的应用程序,在带有shinyproxy服务器的主机上。只希望该应用程序到达主机上的数据文件夹。数据每天都在变化。您的详细答案是Eded.在这里没有看到真正的问题,错误是什么?可能是您从绝对路径读取RDS文件,指向物理位置,而不是从相对路径读取?在您的Docked shinyapp中,路径将是
/srv/shinny server/mydata.RDS
@mrrumble我编辑该问题是为了解释b更糟。@MrGrumble我没有复制数据文件夹。因为我认为这会使容器变大,这不是一种有效的方法吗?我希望该应用程序是一个多用户可扩展的应用程序,在带有shinyproxy服务器的主机上。只希望该应用程序到达主机上的数据文件夹。数据每天都在变化。非常感谢您的详细回答r回答。对不起,我编辑了这个问题以便解释得更清楚。我的数据文件夹每天都在更新。请再看一看。如果我修改Dockerfile,这会反映容器启动时的更改吗?我想如果我这样做,容器会变大,因为它加载了数据文件夹。这可能不是有效的方法在?谢谢。@Ahmed ArafaI在我的项目中遇到了这个问题,并通过在装入卷后执行bash脚本将文件复制到目录来解决它,请检查此处:非常感谢您的回答。对不起,我编辑了这个问题,以便更清楚地解释它。我的数据文件夹每天都在更新。请重新查看它。如果我修改了该文件,请执行ckerfile,这会反映容器启动时的更改吗?我想如果我这样做,容器会变大,因为它加载了数据文件夹。这可能不是有效的方法。谢谢。@Ahmed ArafaI在我的项目中遇到了这个问题,并通过在装入卷后执行bash脚本将文件复制到目录来解决,请检查此处:
Index of/

 mydata.rds