【问题标题】:database not stored on docker-image with shinyproxy数据库未使用闪亮代理存储在 docker-image 上
【发布时间】:2018-07-17 04:46:46
【问题描述】:

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

我有以下问题:

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

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

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

用于问题测试目的:

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

数据采集器用户:

用户名:xxxxx

密码:Fxxxx

管理员用户:

用户名:inxxx

密码:prupxxxxxx

测试:

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

【问题讨论】:

    标签: r sqlite docker shinyproxy


    【解决方案1】:

    这是预期的行为。 SQLite DB 存储在正在运行的容器 中,而不是图像中。因此,当容器关闭时,它会丢失。 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")
    

    【讨论】:

    • 我曾尝试执行上述操作,但我迷失了方向,因为仍然没有进行任何更改。你有教程或者你可以指导我吗?我对 Docker 和 shinyproxy 还很陌生
    • @nybre 查看更新的答案以获得更明确的解决方案。我不知道shinyproxy的任何方法。 “外部卷”链接已经解释了如何使用卷来持久化数据。可能还有其他方法,但我不知道。
    • 这确实有效,谢谢,我缺少的是 r 闪亮的代码,目录未对齐
    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2019-07-10
    • 1970-01-01
    • 2021-10-31
    • 2018-07-14
    • 2014-03-02
    • 2015-02-28
    • 2017-04-23
    相关资源
    最近更新 更多