【问题标题】:Using System environment variables in node / react with docker在节点中使用系统环境变量/与 docker 反应
【发布时间】:2019-04-17 16:13:48
【问题描述】:

我有一个 React 应用程序 (CRA),它将在 docker 容器中运行,我将为其设置环境变量“API_KEY”=“some_value”。对于 windows 的示例,这是系统属性 -> 环境变量 -> 系统变量 -> 变量 = "API_KEY" 和值 = "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 事件。

【问题讨论】:

标签: node.js reactjs docker


【解决方案1】:

答案是否定的。您无法读取系统环境变量。但是,您可以在 *.env 文件中设置进程环境变量。在我的例子中,我将通过一个由 Dockerfile 触发的 shell 脚本生成这个 env 文件。然后,这将废弃以“REACT_APP_#”开头的环境变量的进程。

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 2015-08-20
    • 2020-12-27
    • 1970-01-01
    • 2020-06-23
    • 2020-05-29
    • 2012-12-11
    • 2018-12-15
    • 2015-09-16
    相关资源
    最近更新 更多