PM2:在单个服务器上部署多个环境?

时间:2018-06-27 12:06:19

标签: pm2

我正在使用PM2进行部署/流程管理,并且该应用程序可以处理许多DNS任务,因此,如果我从远程服务器上运行开发应用程序,并且在保存时进行Rsyncing或SFTPing,这是最简单的方法(仍在进行排序)

是这种情况,这是开发人员应用程序与生产应用程序位于同一VM上的想法。但是,PM2部署配置文件(ecosystem.config.js)的结构似乎无法实现这一点,因为当我运行pm2 deploy development时,开发版本会取代VM上的生产过程。

这是我所拥有的:

module.exports = {
  apps: [
    {
      name: "APP NAME",
      script: "app.js",
      env_development: {
        NODE_ENV: "development",
        ...
      },
      env_production: {
        NODE_ENV: "production",
        ...
      }
    }
  ],
  deploy: {
    production: {
      user: "user",
      host: ["123.123.123.123"],
      ref: "origin/master",
      repo: "git@gitlab.com:me/repo.git",
      path: "/var/www/app",
      "post-deploy":
        "npm install && pm2 reload ecosystem.config.js --env production"
    },
    development: {
      user: "user",
      host: ["123.123.123.123"],
      ref: "origin/master",
      repo: "git@gitlab.com:me/repo.git",
      path: "/var/www/app-dev",
      "post-deploy":
        "npm install && pm2 reload ecosystem.config.js --env development"
    }
  }
};

有没有想到实现此目标的最佳方法?

1 个答案:

答案 0 :(得分:0)

在引用此PR之后,我认为您应该可以将x++; printf("x = %d\n", x); ++x; printf("x = %d\n", x); x++; y = x; 作为属性添加到append_env_to_name: true的{​​{1}}数组中的对象中: / p>

因此,您更新后的apps文件如下:

ecosystem.config.js