【问题标题】:Not able to access Gitlab env variables either in node.js or react无法在 node.js 或 react 中访问 Gitlab env 变量
【发布时间】: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?

【问题讨论】:

    标签: node.js reactjs docker gitlab


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2019-06-07
        • 2016-09-22
        • 2021-09-08
        • 2018-11-20
        • 2018-07-12
        • 1970-01-01
        • 2017-07-26
        • 2022-01-22
        • 2019-01-29
        相关资源
        最近更新 更多