2

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

我有以下问题:

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

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

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

用于问题测试目的:

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

数据采集​​器用户:

用户名:xxxxx

密码:Fxxxx

管理员用户:

用户名:inxxx

密码:prupxxxxxx

测试:

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

4

1 回答 1

4

这是预期的行为。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

在闪亮的应用程序中,例如:

dbConnect(RSQLite::SQLite(), "/mnt/persistent/my-db.sqlite")
于 2018-07-16T05:28:24.850 回答