首页 > 解决方案 > 如何安全地将 api 密钥添加到 dockerized Shiny App?

问题描述

我有一个 R 闪亮的应用程序,我想将它部署在一个 docker 容器中。

目前,Shiny 应用程序api_key从我的环境中检索一个,并使用它来检索数据。

为了使api_key容器内的 Shiny 可以使用它,看起来我必须将它保存在/home/shiny/.Renviron. 这意味着接收容器的人可以探索文件系统并找到api_key.

我想知道是否有办法解决这个问题;有什么方法可以使api_key闪亮的应用程序可用,但对接收容器图像的人不可用?

标签: rdockershiny

解决方案


为容器配置环境变量:

docker run -d \
  -e API_KEY=<api-key> \
  ...
  shiny-app-image

并在 R 中使用它:

Sys.getenv("API_KEY")

因此变量API_KEY将在容器级别定义,而不是在 Docker 映像中。


推荐阅读