node.js - 使用 Docker 和 PM2 在 google kubernetes 引擎上部署 Nodejs 应用程序
问题描述
我有一个 Nodejs 应用程序并使用 Babel 来启用 ES6 功能。我可以在本地系统上以开发模式运行它。我想使用 PM2 将它部署到 Kubernetes。
当我尝试使用 process.json 使用 PM2 运行它时出现错误。
/bin/bash:1
15:59:52 23|app | (function (exports, require, module, __filename, __dirname) { ����
15:59:52 23|app | ^
15:59:52 23|app | SyntaxError: Invalid or unexpected token
15:59:52 23|app | at new Script (vm.js:85:7)
15:59:52 23|app | at createScript (vm.js:266:10)
15:59:52 23|app | at Object.runInThisContext (vm.js:314:10)
15:59:52 23|app | at Module._compile (internal/modules/cjs/loader.js:698:28)
15:59:52 23|app | at Object.Module._extensions..js (internal/modules/cjs/loader.js:749:10)
15:59:52 23|app | at Module.load (internal/modules/cjs/loader.js:630:32)
15:59:52 23|app | at tryModuleLoad (internal/modules/cjs/loader.js:570:12)
15:59:52 23|app | at Function.Module._load (internal/modules/cjs/loader.js:562:3)
这是我的 process.json
{
"apps": [
{
"name": "app",
"script": "./dist/bin/www.js --env production",
"exec_mode": "cluster",
"instances": 0,
"max_restarts": 20,
"env": {
"NODE_ENV": "production"
},
"env_production": {
"NODE_ENV": "production"
}
}
]
}
当我运行此命令pm2 ./dist/bin/www.js --env production
时,它工作正常,但是当我尝试使用 process.json 运行它时,pm2 start process.json --no-daemon
它会抛出上述错误。
我正在本地系统上尝试它,但是当我使用 Dockerfile 部署到 gcloud 时也会发生这种情况kubectl
有人可以指出我应该尝试寻找的正确方向。
解决方案
试试这个 process.json:
{
"apps": [
{
"name": "app",
"script": "./dist/bin/www.js",
"exec_mode": "cluster",
"instances": 0,
"max_restarts": 20,
"env": {
"NODE_ENV": "development"
},
"env_production": {
"NODE_ENV": "production"
}
}
]
}
命令行:
pm2 start process.json --no-daemon --env production
推荐阅读
- associations - Akka.Net 集群节点间歇性下降
- android - 收到通知的xamarin android事件
- angular - 是否可以构建一个可以通过蓝牙控制设备的 PWA?
- c++ - 在 d3d 11 中渲染多对象场景的正确方法是什么
- javascript - 为什么我无法在我的 React 应用程序中访问谷歌分析?
- azure - 我可以拥有多少个 eventthub 命名空间?
- bash - 与 SSH 断开连接时卸载共享
- android - 插件file_picker中不显示app目录
- php - 如何从 WooCommerce 中的订单密钥中获取订单 ID?
- node.js - 运行多个 nodejs 工作线程:为什么会有这么大的开销/延迟?