使用PM2

时间:2016-05-19 07:00:27

标签: node.js deployment typescript pm2

使用Typescript构建了node.js应用程序,因此需要在运行之前先将其“编译”到JS。我打算使用NAR(https://github.com/h2non/nar)构建可随时部署的软件包,以避免摆弄npm install并在生产时对其进行编译。我还使用PM2作为节点应用程序的流程管理器。

但据我所知,PM2只能从git部署(获取源代码并稍后调用npm install等),但我找不到一种方法来轻松部署已经预构建的应用程序。

这是我使用deploy.yml提取的档案中包含的nar extract <package>文件:

apps:
  - script: dist/app.js
    merge_logs: true
    name: server
    instances: 1  # 0 => max, depending on CPU cores
    exec_mode: cluster
    node_args: --harmony --harmony_destructuring --harmony_default_parameters
    log_file: deploy/logs/server.log
    pid_file: deploy/pids/server.pid
    source_map_support: true
    env:
      NODE_ENV: production

第一次运行时工作正常,但是当我尝试重新部署它(用新版本替换应用程序内容)并调用pm2 reload all时,我得到错误的进程,说他们无法加载ProcessManager来自PM2或找不到我的.env文件(已到位)。

我一旦用pm2 kill杀死PM2守护程序并再次使用pm2 start all deploy.yml启动应用程序,就会点击它。但这可能不是PM2应该如何使用的,对吗?

您是否有过使用此类设置的经验并遇到类似问题?或者你可以指点我另一种运行部署的方式吗?

0 个答案:

没有答案