问题描述
我有一个使用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
和文件来设置环境变量。