【问题标题】:PM2 dev and prod environments on same server同一台服务器上的 PM2 开发和生产环境
【发布时间】:2018-05-01 17:18:44
【问题描述】:

我有一个微服务的开发和生产实例在一台机器上运行。我的生态系统文件为它们提供了相同的名称。由于名称(大概),当第一个实例正在运行时,PM2 不会启动第二个实例。有什么解决方法的想法吗?

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    Pm2 对文件名不敏感,因为该名称通常用于人类而不是 PM2 进程。

    常见的错误:

    • 两个脚本尝试监听一个端口。
    • 脚本和资源之间的冲突。

    解决方法是用pm2启动第一个进程,用nodejs正常启动第二个进程,如果没有启动可以看到日志和错误,或者启动成功然后先启动第二个进程,第二个进程。

    您可以使用pm2panel 在 pm2 中轻松添加或删除进程。

    【讨论】:

      【解决方案2】:

      感谢您的帮助...我最终得到了这个:

      require("dotenv").config();
      
      module.exports = {
        apps: [
          {
            name: "app-" + process.env.environment,
            script: "./app.js",
            max_memory_restart: "150M"
          }
        ]
      };
      

      【讨论】:

      • 嗨,Joe,您是否找到了一种将不同的 API 密钥传递给一台服务器上的产品/开发应用程序的好方法?
      • @LukePighetti 与原始问题的关系并不密切,但我的做法是检查加密的 .env 文件(prod.env.secure、staging.env.secure)和我的流程的一部分正在将那些解密为 .env (prod.env.secure => .env)
      • 我理解环境变量的范围是节点进程吗?我以为它的范围是操作系统
      猜你喜欢
      • 1970-01-01
      • 2014-12-04
      • 2016-01-27
      • 2016-01-28
      • 2014-11-25
      • 2013-11-19
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      相关资源
      最近更新 更多