数据库未使用Shinyproxy存储在docker-image中

时间:2018-07-15 23:19:36

标签: r sqlite docker shinyproxy

我已经开发出一种解决方案,并决定使用Shinyproxy。

我有以下问题:

用户需要捕获解决方案上的数据,对于所有访问该解决方案的用户,必须将其存储在数据库中并进行更新,为此我使用了SQLite,并使用了R。

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

问题是保存数据似乎没有保存在docker映像上,这是为什么,我该如何解决?

出于问题测试的目的:

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

Data Capturer用户:

用户名:xxxxx

密码:Fxxxx

管理员用户:

用户名:inxxx

密码:prupxxxxx

测试:

在解决方案中,如果转到数据管理选项卡,输入数据,然后右键单击表并插入新行,然后单击保存更改,则必须对Docker映像进行新更改以确保安全,但这只是暂时的操作,其他用户看不到所做的更改。

1 个答案:

答案 0 :(得分:4)

这是预期的行为。 SQLite数据库存储在运行的容器中,而不是图像中。因此,当容器关闭时,它会丢失。 Shinyproxy为每个用户启动了一个新容器。 docker的一般解决方案是使用安装在运行容器中的external volume,并使用该文件/目录存储持久数据。与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

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

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