我们让golem包自动为我们创建一个Dockerfile,可以运行docker映像,并在根目录:http://localhost:3838/?...上看到应用程序。
但是我们希望这个应用程序出现在像http://localhost:3838/myApp/v1/?...这样的子目录中,这样我们就可以为Apache设置必要的代理,并让这个应用程序和其他应用程序都可以从一台服务器上获得。
我们可以手动编辑Dockerfile,以便使用以下信息复制一个闪亮的-server.conf文件:
# Define a server that listens on port 3838
server {
listen 3838;
# Define a location at the base URL
location /myApp/v1/ {
# Host the directory of Shiny Apps stored in this directory
site_dir /srv/shiny-server;
# Log all Shiny output to files in this directory
log_dir /var/log/shiny-server;
}
}上面的解决方案感觉就像一个黑客,我们希望在golem中有一些功能可以让我们设置应用程序将出现的子目录。
发布于 2020-08-31 13:58:39
不幸的是,无法以编程的方式在Dockerfile中包含nginx配置:{golem}试图帮助创建文件,但有些事情仍然需要手动完成。
另外,请注意,{golem} 没有创建一个中有闪亮服务器的Dockerfile,它创建了一个独立的停靠程序映像来启动应用程序,因此没有运行闪亮的服务器,只有一个R进程。{shiny}是这样的,没有办法在给定的路径上本地运行它,它总是在根上,在端口上。
尽管如此,您可以做的是编辑dockerfile,以便它还可以捆绑nginx (或任何其他负载均衡器),以便您可以在路径上为应用程序提供服务,或者使用port的add_dockerfile()参数在另一个端口上服务应用程序:这可能更容易使用Apache来配置它。
科林
https://stackoverflow.com/questions/63606762
复制相似问题