PM2 如何加载环境变量使 Node.js 应用通过容器部署

在容器化部署中,我们经常需要通过环境变量来配置应用程序的一些参数。在 Node.js 应用中,使用 PM2 来管理进程是一个不错的选择。本篇文章将详细介绍如何在 PM2 中加载环境变量,以便我们可以通过容器部署 Node.js 应用。

什么是 PM2

PM2 是一个带有负载均衡功能的 Node.js 应用程序进程管理器。它可以帮助我们管理和监控 Node.js 应用程序的进程,并支持自动重启、日志记录和负载均衡等功能。PM2 还支持通过配置文件来管理应用程序,以便我们可以更好地控制应用程序的行为。

加载环境变量

在 Node.js 应用中,我们可以使用 process.env 对象来访问环境变量。为了在 PM2 中加载环境变量,我们可以使用以下两种方法:

1. 使用 PM2 启动参数

我们可以在启动 PM2 时使用 --env 参数来设置环境变量。例如,我们可以使用以下命令来启动一个名为 app 的应用程序,并将 NODE_ENV 环境变量设置为 production:

--- ----- ------ ------ --- ----- -------------------

在应用程序中,我们可以使用以下代码来访问 NODE_ENV 环境变量:

----- --- - ---------------------

2. 使用 PM2 配置文件

另一种加载环境变量的方法是使用 PM2 的配置文件。我们可以在配置文件中使用 env 字段来设置环境变量。例如,以下是一个名为 ecosystem.config.js 的 PM2 配置文件的示例:

-------------- - -
  ----- --
    ----- ------
    ------- ---------
    ---- -
      --------- ------------
    -
  --
--

在应用程序中,我们可以使用以下代码来访问 NODE_ENV 环境变量:

----- --- - ---------------------

示例代码

以下是一个简单的 Node.js 应用程序,它使用 PM2 加载环境变量,并将其输出到控制台:

-- ------

----- --- - ---------------------

-------------------- ------------ ---------

使用 PM2 启动该应用程序的命令如下:

--- ----- ------ ------ --- ----- -------------------

或者,我们可以使用以下的 PM2 配置文件来启动应用程序:

-- -------------------

-------------- - -
  ----- --
    ----- ------
    ------- ---------
    ---- -
      --------- ------------
    -
  --
--

使用以下命令来启动应用程序:

--- ----- -------------------

无论使用哪种方法,应用程序都将输出当前环境变量的值。

结论

在 Node.js 应用程序中,使用 PM2 来管理进程是一种非常方便的方式。通过使用 PM2 启动参数或配置文件,我们可以轻松地加载环境变量,并将其传递给应用程序。这使得我们可以更轻松地通过容器部署 Node.js 应用程序。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6726bd562e7021665e1b2d84