繁体   English   中英

"如何将所有 Linux 环境变量读入 Docker 容器中的 R?"

[英]How to read all Linux environment variables into R in a Docker container?

我正在尝试使 R-Shiny Web 应用程序安全地从代码中获取我的所有数据库凭据。 我将 Azure Webapps 用于容器,在运行时我通过 Azure Keyvault 安全地设置环境变量。

但是,当我使用 Sys.getenv()

Sys.getenv("AzureSQL_Prod")

...没有出现指定的环境变量。 那么问题是为什么? 以及如何让 R 了解我需要访问此环境变量?

R 环境变量是从 .Renviron 文件生成的 - 有关更多详细信息,请参阅此 Rstudio 链接( https://support.rstudio.com/hc/en-us/articles/360047157094-Managing-R-with-Rprofile-Renviron-Rprofile -site-Renviron-site-rsession-conf-and-repos-conf )。

当您调用Sys.getenv()时,R 进程会搜索 R 环境变量,而不是系统环境变量。

解决此问题的一种方法是创建一个.Renviron文件 - 有关详细信息,请参阅上面的链接。

另一种方法是从 R 代码中显式检索系统环境变量。 我的方法如下:

system("printenv MY_ENV_VARIABLE", intern = TRUE)

这应该输出与您的系统变量对应的字符串。 intern = TRUE允许您将输出保存为 R 环境中的变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM