首页 > 解决方案 > 使用闪亮的应用程序更新 Docker 容器内的文件

问题描述

我正在使用 docker 部署一个闪亮的应用程序。作为这个应用程序的一部分是一个数据文件,可以从闪亮的应用程序中覆盖和更新,就像这样。

observeEvent(input$upload_data,{
    file.copy(input$upload_data$datapath, "../data.xlsx", overwrite = TRUE)
})

因此,每次将新的数据文件上传到 input$upload_data 时,它都应该用新上传的文件覆盖现有的 data.xlsx 文件。

这在我的 Windows 机器上运行应用程序时非常有效,但是当应用程序在 Docker 中运行时,数据文件不会被覆盖。启动应用程序时,使用的数据文件是生成 Docker 映像时最初存在的数据文件。

标签: rdockershiny

解决方案


Docker 不会保留任何数据,除非被告知这样做。对于这种情况,引入了卷,它将持久化容器的数据。否则所有数据只存在于 RAM 中,将在容器关闭后被丢弃。

有关更多信息,您应该阅读以下文章:

https://docs.docker.com/storage/volumes/


推荐阅读