如何使用Shiny服务器在本地计算机上对R Shiny应用程序进行Docker化?

时间:2018-04-09 15:18:47

标签: r amazon-web-services docker shiny

我想要完成的产品管道是:

  • 在我的本地计算机上构建一个闪亮的应用程序
  • 使用Shiny服务器对Shiny应用程序进行Docker化
  • 将这些容器推送到AWS

目前,我在Dockerfile的末尾运行Rscript,使用shiny::runApp()来运行应用程序。我可以将此容器推送到AWS,我可以正常访问该应用程序。然而,Shiny应用程序非常快速地灰化(例如,在不活动时,在浏览器中切换标签,切换窗口)。我的用户经常从使用应用程序切换到检查他们的电子邮件并返回;应用程序在那段时间关闭。

我在R和统计编程方面有很强的背景,但在DevOps方面并不多。我见过很多人展示如何使用Docker存储库(如rocker/shiny)在Docker容器上安装Shiny服务器。但是,我无法拼凑所有这些教程来解决整个工作流程。我可以通过运行docker run --rm -p 3838:3838 rocker/shiny让Shiny服务器工作,但无法弄清楚如何(a)让本地应用程序在这上面工作,以及(b)构建使用Shiny服务器运行我的应用程序的容器,以便我可以将这些推送到AWS

如何使用Shiny服务器在本地计算机上对R Shiny应用程序进行Docker化,以便我可以将此容器推送到AWS,以便我的应用程序可以在AWS上运行?

1 个答案:

答案 0 :(得分:1)

您的Dockerfile应如下所示:

FROM rocker/shiny

RUN install2.r <package1> <package2> ....

COPY <app/directory> /srv/shiny-server/

在本地构建并运行此图像。如果可行,您可以像部署Shiny图像一样将其部署到AWS。