问题
- 无法使用pm2,因为pm2会后台运行,docker作为容器时,如果无前台运行的进程,将关闭容器。
- 无法使用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,性价比更低。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。