将SQL凭据传递到Shinyproxy应用

问题描述

我有一个使用ldap身份验证的Shinyproxy应用程序。但是,为了从sql数据库中检索数据,我现在使用(不建议)在R代码中使用此处提到的凭证使用硬编码的连接字符串(我使用服务用户,因为最终用户无权查询数据库):

con <- DBI::dbConnect(odbc::odbc(),encoding = "latin1",.connection_string = 'Driver={Driver};Server=Server;Database=dbb;UID=UID;PWD=PWD') 

我尝试用环境变量替换连接字符串,该变量从我的linux主机传递到容器。当在ShinyProxy外部运行容器时有效,因此可以通过在运行时使用以下docker命令传递环境变量来实现:

docker run -it --env-file env.list app123

但是,在使用ShinyProxy时,我不清楚如何在yaml配置文件中进行配置。如何在此级别传递--env-file env.list语句,以便在链接的容器中将其提取

任何帮助表示感谢!

解决方法

已解决的问题:https://github.com/openanalytics/shinyproxy/issues/99

您的application.yaml可能看起来像这样:

proxy:

  title: Open Analytics Shiny Proxy
  logo-url: http://www.openanalytics.eu/sites/www.openanalytics.eu/themes/oa/logo.png
  landing-page: /
  heartbeat-rate: 10000
  heartbeat-timeout: 60000
  port: 8080
  authentication: simple
  admin-groups: admin
  # Example: 'simple' authentication configuration
  users:
  - name: admin
    password: password
    groups: admin
  # Docker configuration
  docker:    
    internal-networking: true

  specs:
  - id: 01_hello
    display-name: Hello Application
    description: Application which demonstrates the basics of a Shiny app
    container-cmd: ["R","-e","shinyproxy::run_01_hello()"]
    container-image: openanalytics/shinyproxy-demo
    container-env-file: /app/shinyproxy/test.env
    container-env:
       bar: baz
    access-groups: admin  
    container-network: shinyproxy_reprex_default  


logging:
  file:
    shinyproxy.log

具体来说,您似乎可以使用container-env-file和文件来设置环境变量。