【问题标题】:How Nodejs process.env worksNodejs process.env 是如何工作的
【发布时间】:2021-10-28 16:34:15
【问题描述】:

我有一个 ENVIRONMENT 变量,它解析了 kubernetes 中容器内的当前阶段。 当我在代码中引用变量时,即使实际值指的是“stage”,它也总是打印“dev”。容器内。

我的掌舵变量:

profiles:
  - node
owner:
  group: gcp-admin # change to your own group
notify:
  slack:
    channelName: XXXXXXXX-ingestion # change to your own slack channel

build:
  docker:
    app:
      runtime: node
      buildArgs:
        nodeVersion: 14.17.1
        buildDir: '.'
deploy:
  helm:
    values:
      env:
        ENVIRONMENT: stage

我的java脚本代码是这样的..

env: process.env.ENVIRONMENT

当我编写 console.log(env) 时,它总是打印 dev。 下图是我运行 describe pod

时得到的

【问题讨论】:

  • 您能否编辑问题以提供minimal reproducible example?该图像文件看起来像是启动了一个虚拟显示,运行了 Kubernetes kubectl describe 命令,并呈现了它的结果;该代码序列是否相关?这是否与 Kubernetes 有关,如果是,您能否提供 Kubernetes YAML 或 Helm 图表的相关摘录(作为文本而不是图像)?

标签: node.js docker containers


【解决方案1】:

您的配置看起来很旧(验证版本)。您可以参考以下文档。

env:
 - name: ENVIRONMENT
   value: "stage"

在这里阅读更多:

【讨论】:

  • 它仍在打印 DEV @xdeepakv
【解决方案2】:

我做了类似的事情,但环境名称是“APP_ENV”,它可以工作

  helm:
    values:
      env:
        APP_ENV: "staging" // or "development" or "production"

在代码中

if (process.env.APP_ENV == "staging") {

【讨论】:

    猜你喜欢
    • 2018-05-02
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2019-10-17
    • 2016-07-23
    相关资源
    最近更新 更多