【问题标题】:Deploy shiny app in rocker/shiny docker在 rocker/shiny docker 中部署闪亮的应用程序
【发布时间】:2017-11-08 10:50:26
【问题描述】:

嗯,我是 Docker 的新手,我需要在 Docker 容器中实现一个闪亮的应用程序。

我有来自https://hub.docker.com/r/rocker/shiny/ 的图像,其中包括Shiny Server,但我不知道如何在服务器中部署我的应用程序。

我想在服务器中部署应用程序,将我的应用程序所需的包安装到 Docker 中,保存更改并导出图像/容器。

正如我所说,我是 Docker 的新手,我不知道它是如何工作的。

有什么想法吗?

【问题讨论】:

    标签: r docker shiny dockerfile


    【解决方案1】:

    链接(https://hub.docker.com/r/rocker/shiny/) 介绍了如何部署闪亮的服务器。 最简单的方法是: docker run --rm -p 3838:3838 摇杆/闪亮

    如果你想扩展闪亮的服务器,你可以编写你自己的 Dockerfile 并从闪亮的镜像开始作为基础镜像。(https://docs.docker.com/engine/reference/builder/)

    Docker 文件: FROM 摇杆/闪亮:最新

    【讨论】:

      【解决方案2】:

      我想你应该首先在一个特定的文件夹中创建一个 Dockerfile,它看起来像这样:

      FROM rocker/shiny:latest
      
      RUN  echo 'install.packages(c("package1","package2", ...), \
      repos="http://cran.us.r-project.org", \
      dependencies=TRUE)' > /tmp/packages.R \
        && Rscript /tmp/packages.R
      
      EXPOSE 3838
      CMD ["/usr/bin/shiny-server.sh"]
      

      然后进入这个文件夹并构建你的镜像,使用这个命令给它一个名字:

      docker build -t your-tag .
      

      最后,一旦你的镜像被构建,你就可以创建一个容器,如果你没有忘记映射卷和端口,你应该能够在 localhost:3838 找到它,并从文件夹中启动以下命令包含 srv 文件夹:

      docker run --rm -p 3838:3838 -v $PWD/srv/shinyapps/:/srv/shiny-server/ -v $PWD/srv/shinylog/:/var/log/shiny-server/ your-tag
      

      正如以下地址 https://hub.docker.com/r/rocker/shiny/ 的 Docker 文档中所述,您可能希望使用 -d 选项以分离模式启动它,并将其映射到主机的端口 80 以进行实际部署。

      【讨论】:

        猜你喜欢
        • 2021-12-11
        • 2018-05-24
        • 2018-02-03
        • 2014-08-09
        • 2016-02-24
        • 2021-05-18
        • 2019-04-24
        • 1970-01-01
        相关资源
        最近更新 更多