数据库未存储在带有 shinyproxy 的 docker-image 上

database not stored on docker-image with shinyproxy

我已经制定了解决方案并决定使用 shinyproxy。

我有以下问题:

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

现在,当我登录并捕获数据时,它会保存,但是当我以不同的用户登录时,我找不到捕获的数据。

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

为了问题测试目的:

解决方案link:https://xxasdfqexx.com

数据采集器用户:

用户名:xxxxx

密码:Fxxxx

管理员用户:

用户名:inxxx

密码:prupxxxxx

测试:

在解决方案中,如果您转到数据管理选项卡,输入数据,然后右键单击 table 并插入一个新行,单击保存更改,它必须安全地对 docker 图片但它只是暂时这样做,其他用户看不到所做的更改。

这是预期的行为。 SQLite 数据库存储在 运行 容器 中,而不是图像。因此,当容器关闭时它会丢失。 shinyproxy 为每个用户启动一个新容器。 docker 的一般解决方案是使用安装到 运行 容器中的 external volume,并使用 file/directory 存储持久数据。与shinyproxy一起,你必须使用docker-volumes,c.f。 https://www.shinyproxy.io/configuration/#apps.

将这些放在一起,您可以在 shinyproxy 配置中使用如下内容:

apps:
  - name: ...
    docker-cmd: ...
    docker-image: ...
    docker-volumes: /some/local/path/:/mnt/persistent

在 shiny 应用程序中是这样的:

dbConnect(RSQLite::SQLite(), "/mnt/persistent/my-db.sqlite")