[英]Using System environment variables in node / react with docker
我有一个React App(CRA),它将在docker容器中运行,我将为其设置环境变量“ API_KEY” =“ some_value”。 对于Windows的示例,这是系统属性->环境变量->系统变量->变量=“ API_KEY”和Value =“ some_value”。
我想在运行时访问此变量进入应用程序。 这是用于Azure App Insights的API_KEY。
上面的链接显示<your instrumentation key>
。 我将同一应用程序部署到多个环境。 该应用程序的每个实例将需要使用其特定的App Insights。 因此,这里的目标是在环境变量中指定API_KEY,这对于每个Docker容器而言都是不同的。
请注意,我知道nodeJs和process.env.API_KEY,但是这不会从系统环境变量中读取。 有没有办法让系统变量链接到节点实例的process.env?
-PS该请求是针对需要立即启动的API服务的。 因此,提出API请求来解决这个问题是不可能的。 它将在向每个客户端记录JavaScript事件时向最终客户端公开。
答案是不。 您无法读取系统环境变量。 但是,您可以在* .env文件中设置过程环境变量。 就我而言,我将通过将由Dockerfile触发的shell脚本生成此env文件。 然后,将针对以“ REACT_APP_#”开头的环境变量删除该过程。
希望这对其他人有帮助。
使用CRA设置环境https://medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d
Docker化Node.js Web应用程序https://nodejs.org/en/docs/guides/nodejs-docker-webapp/
将环境变量从Docker传递到Node https://medium.com/@felipedutratine/pass-environment-variables-from-docker-to-my-nodejs-or-golang-app-a1f2ddec31f5
也很有帮助https://github.com/facebook/create-react-app/issues/982
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.