在摇杆/闪亮的码头工具中部署闪亮的应用程序

时间:2017-06-07 07:49:10

标签: r docker shiny dockerfile

好吧,我是Docker的新人,我需要在Docker容器中实现一个Shiny应用。

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

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:12)

我想你应该首先在特定文件夹中创建一个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一起映射以进行实际部署。

答案 1 :(得分:4)

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

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

Dockerfile: 来自摇滚/闪亮:最新