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

JFe*_*dez 5 r shiny docker dockerfile

好吧,我是新手,Docker我需要在Docker容器中实现一个Shiny应用程序.

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

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

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

任何的想法?

Sac*_*cha 13

我想你应该首先在特定的文件夹中创建一个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"]
Run Code Online (Sandbox Code Playgroud)

然后进入此文件夹并构建您的映像,使用以下命令为其命名:

docker build -t your-tag .
Run Code Online (Sandbox Code Playgroud)

最后,一旦构建了映像,就可以创建一个容器,如果你不忘记映射卷和端口,你应该可以在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
Run Code Online (Sandbox Code Playgroud)

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


Sre*_*eni 4

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

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

Dockerfile:来自 rocker/shiny:最新