【问题标题】:Node.js: How to read variables from the system?Node.js:如何从系统中读取变量?
【发布时间】:2022-01-14 12:23:02
【问题描述】:

我是 Docker 的新手,要在生产环境中进行部署,我需要从容器的操作系统中读取“环境”变量而不是文件或 package.json 脚本行。

我知道如何从 .env 文件或脚本行中读取变量,但我不知道如何从系统中读取,也不知道是否可以从系统中读取这些变量。

我该怎么做?有可能吗?

【问题讨论】:

    标签: node.js docker docker-compose environment-variables production-environment


    【解决方案1】:

    过程不会改变。您仍然使用以下内容来读取进程正在运行的环境变量。Reference for Node.

    const envVariable = process.env.NAME_OF_VARIABLE;
    

    可以使用以下方法在 Dockerfile 中设置变量。这方面的文档是here.

    ENV <key>=<value> ...
    

    不过,当使用 LXC 或 Kubernetes 之类的东西时,事情会变得更加复杂。

    【讨论】:

    • 伯杰你好!!!谢谢你的帮助。但是检查文档,您将变量的值写入 Docker 文件中,而对我的要求是从系统而不是任何文件中读取变量。例如,如果你在 Linux 中编写 echo $HOME,我得到了变量 $HOME 的值。我需要做的是相同的,但来自节点。我可以使用 process.env.HOME 从 Node 系统中读取 $HOME 变量吗?
    • @JoséCarlos 你试过了吗? (这是一个反问的问题......)=> docker -it --rm --name testnode --env toto=blabla node:latest。在节点控制台中尝试读取process.env.toto(在我的命令启动时在容器上设置)和process.env.HOMEprocess.env.HOSTNAME(由“系统”设置)。你得到了所有人的结果。
    • 我会试试的!!谢谢!!!
    • @JackBarger 它有效!!!感谢您的感谢帮助!!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2011-04-27
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多