在容器化部署中,我们经常需要通过环境变量来配置应用程序的一些参数。在 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:
pm2 start app.js --name app --env NODE_ENV=production
在应用程序中,我们可以使用以下代码来访问 NODE_ENV 环境变量:
const env = process.env.NODE_ENV;
2. 使用 PM2 配置文件
另一种加载环境变量的方法是使用 PM2 的配置文件。我们可以在配置文件中使用 env 字段来设置环境变量。例如,以下是一个名为 ecosystem.config.js 的 PM2 配置文件的示例:
-- -------------------- ---- ------- -------------- - - ----- -- ----- ------ ------- --------- ---- - --------- ------------ - -- --
在应用程序中,我们可以使用以下代码来访问 NODE_ENV 环境变量:
const env = process.env.NODE_ENV;
示例代码
以下是一个简单的 Node.js 应用程序,它使用 PM2 加载环境变量,并将其输出到控制台:
// app.js const env = process.env.NODE_ENV; console.log(`Current environment: ${env}`);
使用 PM2 启动该应用程序的命令如下:
pm2 start app.js --name app --env NODE_ENV=production
或者,我们可以使用以下的 PM2 配置文件来启动应用程序:
-- -------------------- ---- ------- -- ------------------- -------------- - - ----- -- ----- ------ ------- --------- ---- - --------- ------------ - -- --
使用以下命令来启动应用程序:
pm2 start ecosystem.config.js
无论使用哪种方法,应用程序都将输出当前环境变量的值。
结论
在 Node.js 应用程序中,使用 PM2 来管理进程是一种非常方便的方式。通过使用 PM2 启动参数或配置文件,我们可以轻松地加载环境变量,并将其传递给应用程序。这使得我们可以更轻松地通过容器部署 Node.js 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6726bd562e7021665e1b2d84