gpt4 book ai didi

在没有 Shiny 服务器的 Docker 中运行 Shinyapp

转载 作者:行者123 更新时间:2023-12-02 17:59:36 26 4
gpt4 key购买 nike

我正在尝试在 Docker 中运行一个 Shiny 的应用程序,我看到了两种方法:

1) 在 Docker 中运行 Shiny 服务器,然后在该服务器上运行 Shiny 应用程序。它有效,但我仍在努力使用户目录从 Shiny 应用程序中可见(使用 -v 参数进行简单安装没有帮助)。

2) 使用命令R -e "shiny::runApp('/srv/shiny-server/')"直接在Docker上运行Shiny .在这种情况下,它几乎可以工作,但我收到了这个错误:

shiny::runApp('/srv/shiny-server/', launch.browser = T)
Loading required package: shiny
Listening on http://127.0.0.1:4637
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: www-browser: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: links2: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: elinks: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: links: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: lynx: not found
/usr/bin/xdg-open: 844: /usr/bin/xdg-open: w3m: not found
xdg-open: no method available for opening 'http://127.0.0.1:4637'

我尝试安装浏览器(将 apt-get install -y firefox 添加到我的 Dockerfile 中),但它仍然无法正常工作。

我找不到任何关于如何在没有 Shiny Server 的情况下在 Docker 上运行 Shiny 应用程序的教程/示例。所以我会很感激任何帮助!

最佳答案

在您的第二种方法中,R 进程尝试在 docker 容器中打开浏览器,因为它认为它是交互式使用的。一个简单的改变方法是使用 Rscript -e ...而不是 R -e ... .或者,您可以设置 launch.browser FALSE 的参数.

此外,您应该将 Shiny 的应用程序绑定(bind)到任何 IP 地址上的固定端口,并在启动 docker 容器时将该端口发布到主机。您可以使用参数 port = 3838 执行此操作和 host = "0.0.0.0" .

除了通过参数指定这些东西,您还可以通过添加来使用 R 的选项机制

options(shiny.port = 3838, shiny.host = "0.0.0.0", shiny.launch.browser = FALSE) 

Rprofile.site .

关于在没有 Shiny 服务器的 Docker 中运行 Shinyapp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476097/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com