typescript编写的node应用部署在docker中遇到的问题

问题

  1. 无法使用pm2,因为pm2会后台运行,docker作为容器时,如果无前台运行的进程,将关闭容器。
  2. 无法使用pm2-runtime,因为pm2-runtime尚不支持ts-node。

解决方案

方案1:使用 ts-node 跳过pm2直接运行项目
方案2:使用 tsc 把ts编译为js,再使用pm2运行项目
方案3:重新编译pm2-runtime,增加其支持ts的能力

方案1的做法,是比较可取的,因为我们使用docker作为容器,其本身就具有自动重启等特点,所以再增加pm2对进程进行保护是多余的,且存在性能损耗。

方案2需要改动项目的配置,在测试环境和本地开发环境不使用docker,则需要做兼容,改动较大,且由于方案1的存在,该方案性价比较低。

方案3,性价比更低。

你可能感兴趣的:(node.js,typescript,pm2)