【问题标题】:PM2: Deploy multiple environments on a single server?PM2:在单个服务器上部署多个环境?
【发布时间】:2019-03-02 06:33:44
【问题描述】:

我正在使用 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"
    }
  }
};

对于完成此任务的最佳方法有什么想法吗?

【问题讨论】:

  • 您好,您最终找到解决方案了吗?

标签: pm2


【解决方案1】:

引用此PR 后,我认为您应该能够将append_env_to_name: true 作为属性添加到ecosystem.config.jsapps 数组中的对象:

所以您更新后的ecosystem.config.js 文件如下:

module.exports = {
  apps: [
    {
      name: "APP NAME",
      append_env_to_name: true // <===== add this line
      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"
    }
  }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    相关资源
    最近更新 更多