我已经开发出一种解决方案,并决定使用Shinyproxy。
我有以下问题:
用户需要捕获解决方案上的数据,对于所有访问该解决方案的用户,必须将其存储在数据库中并进行更新,为此我使用了SQLite,并使用了R。
现在,当我登录并捕获数据时,它会保存,但是当我以其他用户身份登录时,我找不到找到的数据。
问题是保存数据似乎没有保存在docker映像上,这是为什么,我该如何解决?
出于问题测试的目的:
解决方案链接:https://xxasdfqexx.com
Data Capturer用户:
用户名:xxxxx
密码:Fxxxx
管理员用户:
用户名:inxxx
密码:prupxxxxx
测试:
在解决方案中,如果转到数据管理选项卡,输入数据,然后右键单击表并插入新行,然后单击保存更改,则必须对Docker映像进行新更改以确保安全,但这只是暂时的操作,其他用户看不到所做的更改。
答案 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")