我有一个具有特定 IP 的 VPS Linux (Ubuntu) 服务器,我想在我自己的域上运行我 Shiny 的应用程序 http://my_domain.com .因此,我构建了一个 docker 容器,并在 Ubuntu 终端上运行了我的应用程序:
sudo docker run -rm -p 4096:4096 my_app
它在本地主机上运行良好。然后,我修改了我的 Dockerfile 中的以下行:
EXPOSE 80
CMD ["R", "-e", "shiny::runApp('/srv/shiny-server/my_app/app', host = 'server_ip', port = 80)"]
我再次构建并运行我的 docker 容器,但出现以下错误:
sudo docker run --rm -p 80:80 my_app
Listening on http://server_ip:80
createTcpServer: address not available
Error in initialize(...) : Failed to create server
也许我需要配置nginx。如果有人能告诉我在我自己的域上运行我的应用程序的最佳解决方案是什么以及如何做到这一点,我将不胜感激。
最佳答案
Docker 容器无法访问 server_ip,试试这个:
EXPOSE 80
CMD ["R", "-e", "shiny::runApp('/srv/shiny-server/my_app/app', host = '0.0.0.0', port = 80)"]
关于linux - 在我自己的域上运行 docker shiny app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72151430/