在node中使用系统环境变量/与docker反应

时间:2018-11-14 16:17:25

标签: node.js reactjs docker

我有一个React App(CRA),它将在docker容器中运行,我将为其设置环境变量“ API_KEY” =“ some_value”。对于Windows的示例,这是系统属性->环境变量->系统变量->变量=“ API_KEY”和Value =“ some_value”。

我想在运行时将此变量获取到应用程序中。这是用于Azure App Insights的API_KEY。

https://docs.microsoft.com/en-us/azure/application-insights/app-insights-javascript#add-the-sdk-script-to-your-app-or-web-pages

上面的链接显示了<your instrumentation key>。我将同一应用程序部署到多个环境。该应用程序的每个实例将需要使用其特定的App Insights。因此,这里的目标是在环境变量中指定该API_KEY,这对于每个docker容器而言都是不同的。

请注意,我知道nodeJs和process.env.API_KEY,但是这不会从系统环境变量中读取。有没有办法让系统变量链接到节点实例的process.env?

-PS此请求是针对需要立即启动的API服务的。因此,提出API请求来解决这个问题是不可能的。它将在向每个客户端记录JavaScript事件时向最终客户端公开。

1 个答案:

答案 0 :(得分:0)

答案是否定的。您无法读取系统环境变量。但是,您可以在* .env文件中设置过程环境变量。就我而言,我将通过将由Dockerfile触发的shell脚本生成此env文件。然后,将针对以“ REACT_APP_#”开头的环境变量删除该过程。

希望这对其他人有帮助。