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

标签 r amazon-web-services docker shiny

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

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

  • 目前,我在Dockerfile的末尾运行Rscript,使用shiny::runApp()运行该应用程序。我可以将该容器推送到AWS,也可以正常访问该应用程序。但是,Shiny应用程序会很快变灰(例如,处于不 Activity 状态,切换浏览器中的标签,切换窗口)。我的用户经常从使用应用程序切换为查看电子邮件并返回。在那段时间,应用会关闭。

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

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

    最佳答案

    您的Dockerfile应该如下所示:

    FROM rocker/shiny
    
    RUN install2.r <package1> <package2> ....
    
    COPY <app/directory> /srv/shiny-server/
    

    在本地生成并运行此镜像。如果可行,您可以按照部署Shiny镜像的相同方式将其部署到AWS。

    关于r - 如何使用Shiny服务器在本地计算机上对R Shiny应用程序进行Docker化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49736393/

    相关文章:

    R列表获取每个元素的第一项

    在包函数中重定向/拦截函数调用

    减少一棵树的节点数,获得具有多个子节点的节点

    ios - 在 RestKit (iOS) 中使用 force_load 链接器标志

    Docker compose 主机卷目录为空

    docker - 如何与Postgres上的非特权用户一起使用UUID?

    r - 如果在更新列中,则合并到数据集并替换当前值

    mysql - AWS Glue - 无法连接到 mysql

    rest - AWS DELETE 文件夹请求成功,但文件夹仍然存在

    mongodb - 无法从 docker 容器连接主机上的 mongodb