数据库未存储在具有shinyproxy的docker映像上

数据库未存储在具有shinyproxy的docker映像上,r,sqlite,docker,shinyproxy,R,Sqlite,Docker,Shinyproxy,我已经开发了一个解决方案,并决定使用shinyproxy 我有以下问题: 用户需要捕获解决方案上的数据,对于访问解决方案的所有用户,这些数据必须存储并更新到数据库中,为此,我使用了SQLite和R 现在,当我登录并捕获数据时,它会保存,但当我与其他用户登录时,我无法找到捕获的数据 问题是保存数据似乎并没有保存在docker映像上,这是为什么?我如何着手修复它 出于问题测试目的: 解决方案链接: 数据捕获器用户: 用户名:xxxxx 密码:fxxx 管理员用户: 用户名:inxxx 密码:prup

我已经开发了一个解决方案,并决定使用shinyproxy

我有以下问题:

用户需要捕获解决方案上的数据,对于访问解决方案的所有用户,这些数据必须存储并更新到数据库中,为此,我使用了SQLite和R

现在,当我登录并捕获数据时,它会保存,但当我与其他用户登录时,我无法找到捕获的数据

问题是保存数据似乎并没有保存在docker映像上,这是为什么?我如何着手修复它

出于问题测试目的:

解决方案链接:

数据捕获器用户:

用户名:xxxxx

密码:fxxx

管理员用户:

用户名:inxxx

密码:prupxxx

测试:


在解决方案中,如果您转到“数据管理”选项卡“数据输入”,然后右键单击表格并插入新行,单击“保存更改”,则必须保护docker映像的新更改,但这只是暂时的,其他用户无法看到所做的更改。

这是预期行为。SQLite DB存储在正在运行的容器中,而不是映像中。因此,当容器关闭时,它将丢失。shinyproxy为每个用户启动一个新容器。docker的一般解决方案是使用装载到正在运行的容器中的,并使用该文件/目录存储持久数据。与shinyproxy一起,您必须使用docker卷,c.f。

将其组合在一起,您可以在shinyproxy配置中使用以下内容:

apps:
  - name: ...
    docker-cmd: ...
    docker-image: ...
    docker-volumes: /some/local/path/:/mnt/persistent
dbConnect(RSQLite::SQLite(), "/mnt/persistent/my-db.sqlite")
在闪亮的应用程序中,类似于:

apps:
  - name: ...
    docker-cmd: ...
    docker-image: ...
    docker-volumes: /some/local/path/:/mnt/persistent
dbConnect(RSQLite::SQLite(), "/mnt/persistent/my-db.sqlite")

我已经试着做了以上的事情,但我还是迷路了,因为没有任何改变。你有教程吗?也许你能告诉我怎么做?我对Docker和shinyproxy@nybre有关更明确的解决方案,请参阅更新的答案。我不知道shinyproxy的任何操作方法。外部卷链接已经解释了如何使用卷来持久化数据。可能还有其他的how-to,但我不知道它们。这实际上是有效的,谢谢,我缺少的是r代码,目录没有对齐