【问题标题】:How do I make a golem app appear at a specific URL route如何让 golem 应用程序出现在特定的 URL 路由中
【发布时间】:2020-12-15 19:01:34
【问题描述】:

我们让golem包自动为我们创建一个Dockerfile,可以运行docker镜像,在根目录下可以看到app:http://localhost:3838/?...

但我们希望应用出现在像 http://localhost:3838/myApp/v1/?... 这样的子目录中,这样我们就可以为 Apache 设置必要的代理,并让这个应用和其他应用都可以从单个服务器上使用。

我们可以手动编辑 Dockerfile 以复制一个 shiny-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;
  }
}

上面的解决方案感觉像是一个 hack,我们希望 golem 内部有功能可以让我们设置应用程序出现的子目录。

【问题讨论】:

    标签: golem


    【解决方案1】:

    不幸的是,无法以编程方式在Dockerfile 中包含 nginx 配置:{golem} 试图帮助创建文件,但仍有一些事情需要手动完成。

    另外,请注意{golem} 不会创建包含闪亮服务器的 Dockerfile,它会创建一个独立的 docker 镜像来启动应用程序,因此没有运行闪亮的服务器,只是一个R过程。 {shiny} 就是这样,没有办法在给定的路径上本地运行它,它总是在根目录下,在端口上。

    话虽如此,您可以编辑 dockerfile 以便它还捆绑 nginx(或任何其他负载均衡器),以便您可以在路径上为应用程序提供服务,或者在另一个端口上为您的应用程序提供服务,使用add_dockerfile()port 参数:使用 Apache 代理配置它可能更容易。

    科林

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-21
      • 2012-11-10
      • 2022-08-05
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      相关资源
      最近更新 更多