如何安全地将api密钥添加到dockerized的Shiny App?

时间:2019-02-22 12:52:44

标签: r docker shiny

我有一个R Shiny应用,我想将其部署在Docker容器中。

此刻,Shiny应用程序从我的环境中检索了api_key,并使用它来检索数据。

为了使api_key在容器中可用于Shiny,看来我必须将其保存在/home/shiny/.Renviron中。 这意味着接收容器的人可以浏览文件系统并找到api_key

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

1 个答案:

答案 0 :(得分:1)

为容器配置环境变量:

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

并在R中使用它:

Sys.getenv("API_KEY")

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