1Panel
1Panel copied to clipboard
[QUESTION] nodejs项目的进程守护和env配置
请描述您的问题
成功创建了nodejs的运行环境,并用自定义命令“node index.js”跑起来了。(package.json里是start用的pm2没成功) 但不知道这种容器里该怎么用pm2,能提供下相关教程么?本地开发机上pm2和nodemon是全局安装的 另外node项目的.env文件没起作用也不知道怎么搞,最好能新手向细化下官网的教程 😅 官网node文档
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {
"dev": "nodemon index.js",
"start": "pm2 start index.js --name server"
},
"author": "",
"license": "ISC",
"dependencies": {
"cors": "^2.8.5",
"dayjs": "^1.11.10",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"fs-extra": "^11.2.0",
"jsonwebtoken": "^9.0.2",
"sequelize": "^6.35.1",
"sqlite3": "^5.1.6"
}
}
1Panel 是以容器方式运行的 Node.js 项目,pm2 需要进入容器内部手动安装并使用(不能使用本地开发机上 pm2)。
我们会在后续版本调研以容器方案来使用 pm2。
该如何进入容器内手动安装?我通过”模块管理“手动安装pm2后设置自定义启动命令也没法通过”pm2 start index.js“启动
可以进入 容器 页面,找到目标容器后,在操作列点击 终端 按钮进入容器内部。
我这样设置有什么问题么?还是无法启动(通过自定义命令“node index.js”是可以正常启动的)
我这样设置有什么问题么?还是无法启动(通过自定义命令“node index.js”是可以正常启动的)

还是没有在容器中正确安装 pm2 命令。
进入 容器 列表中找到目标容器后,点击右侧的 终端 按钮,进入容器内部手动命令安装,如图:
我发现现在的状态是这样的,我在“容器->终端”内“npm i pm2 -g”后,再去编辑“网站->运行环境->node.js”的启动命令,就会触发这个运行环境的重建,重建后pm2就不存在了。 仔细看我上面的截图,我其实已经成功安装过pm2了,但只要更改启动命令后重建重启运行环境pm2就不存在了
我发现现在的状态是这样的,我在“容器->终端”内“npm i pm2 -g”后,再去编辑“网站->运行环境->node.js”的启动命令,就会触发这个运行环境的重建,重建后pm2就不存在了。 仔细看我上面的截图,我其实已经成功安装过pm2了,但只要更改启动命令后重建重启运行环境pm2就不存在了
了解,是因为重建运行环境的操作会重新构建镜像并重新运行容器,这样之前在容器内的所有操作就会丢失导致的。
我们调研一下,后续版本官方来支持 pm2。
当前版本你可以先将项目手动制作为 docker 镜像,然后通过创建容器或者编排的方式来维护项目。
我们调研一下,后续版本官方来支持 pm2。
当前版本你可以先将项目手动制作为 docker 镜像,然后通过创建容器或者编排的方式来维护项目。
请问这个有后续吗?是不是把node的默认镜像改为带pm2的就可以?