数据库未使用shinyproxy存储在docker-image上

nyb*_*bre 2 sqlite r docker shinyproxy

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

我有以下问题:

用户需要捕获解决方案上的数据,这些数据必须存储在数据库上并更新,供所有访问该解决方案的用户使用,我使用 SQLite 和 R 来实现此目的。

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

问题是保存数据似乎并没有保存在 docker 镜像上,这是为什么,我该如何补救呢?

出于问题测试目的:

解决方案链接: https: //xxasdfqexx.com

数据采集​​器用户:

用户名: xxxxx

密码:Fxxxx

管理员用户:

用户名:inxxx

密码:prupxxxxx

测试:

在解决方案中,如果您转到数据管理选项卡、数据输入,然后右键单击表并插入新行,单击保存更改,它必须将新更改安全到 docker 映像,但它只是暂时这样做,另一个用户无法看到所做的更改。

Ral*_*ner 6

这是预期的行为。SQLite DB 存储在正在运行的容器中,而不是图像中。因此,当容器关闭时,它就会丢失。shinyproxy 为每个用户启动一个新容器。docker 的一般解决方案是使用安装到正在运行的容器中的外部卷,并使用该文件/目录来存储持久数据。与shinyproxy一起使用,您必须使用docker-volumes,参见 https://www.shinyproxy.io/configuration/#apps

将它们放在一起,您可以在shinyproxy配置中使用,如下所示:

apps:
  - name: ...
    docker-cmd: ...
    docker-image: ...
    docker-volumes: /some/local/path/:/mnt/persistent
Run Code Online (Sandbox Code Playgroud)

在闪亮的应用程序中,类似:

dbConnect(RSQLite::SQLite(), "/mnt/persistent/my-db.sqlite")
Run Code Online (Sandbox Code Playgroud)