无法在 node.js 或 react 中访问 Gitlab env 变量
Posted
技术标签:
【中文标题】无法在 node.js 或 react 中访问 Gitlab env 变量【英文标题】:Not able to access Gitlab env variables either in node.js or react 【发布时间】:2019-11-03 20:13:08 【问题描述】:我在 Gitlab 中检查了两个不同的项目,前端和后端。 对于这两个项目,我每个都有一个 Dockerfile。 我已经在 gitlab ci/cd 中设置了环境变量。 我在 kubernetes 中运行 docker 容器, 但我无法在我的 react 或 node.js (express) 应用程序中访问 gitlab env 变量。
我在想,当我执行 process.env.variable_name 时,我可以使用这些 env 变量,但我无法访问它们。
在 kubernetes (deployment.yaml) 环境变量中访问 Gitlab 环境变量的最佳方式是什么?
更新
我发现我们可以在 kubernetes、deployment.yaml 文件(在 env 部分下)中指定 env 变量。如何将 gitlab 环境变量传递给 deployment.yaml?
【问题讨论】:
【参考方案1】:要将环境变量注入使用 create-react-app 创建的 react 应用程序,您应该将前缀 REACT_APP_ 添加到每个 env var。
在构建过程中,webpack 会选择所有带有该前缀的环境变量并将它们添加到环境中。
【讨论】:
【参考方案2】:我能够使用 Gitlab K8S_SECRET_
变量命名约定访问 Node js 应用程序中的环境变量。
例如在 gitlab 中定义一个像K8S_SECRET_MY_TEST_API
这样的变量。
在 Node js 中,您可以使用 process.env.MY_TEST_API
访问此变量。
我面临的唯一问题是这些变量在 React 应用程序中不可用。仍在试图弄清楚这一点。解决该问题后,我将在此处更新。
【讨论】:
刚刚意识到它的 1 岁帖子。如果您知道我的问题的答案,请在此处回复。【参考方案3】:Docker 容器要求您在运行时设置环境变量:
https://docs.docker.com/engine/reference/commandline/run/#set-environment-variables--e---env---env-file
--env , -e Set environment variables
【讨论】:
以上是关于无法在 node.js 或 react 中访问 Gitlab env 变量的主要内容,如果未能解决你的问题,请参考以下文章
Node.js - 在 Server.js 上执行 Node 命令(Express + React + Webpack)
尝试使用 node.js 和 GD 或 imagemagick 访问和操作图像
无法在 node.js 中交换访问令牌的代码。 Mailchimp API