1Panel icon indicating copy to clipboard operation
1Panel copied to clipboard

[QUESTION] nodejs项目的进程守护和env配置

Open feipinxiang opened this issue 2 years ago • 9 comments

请描述您的问题

成功创建了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"
  }
}

feipinxiang avatar Dec 04 '23 13:12 feipinxiang

1Panel 是以容器方式运行的 Node.js 项目,pm2 需要进入容器内部手动安装并使用(不能使用本地开发机上 pm2)。

我们会在后续版本调研以容器方案来使用 pm2。

wanghe-fit2cloud avatar Dec 04 '23 15:12 wanghe-fit2cloud

该如何进入容器内手动安装?我通过”模块管理“手动安装pm2后设置自定义启动命令也没法通过”pm2 start index.js“启动

feipinxiang avatar Dec 06 '23 07:12 feipinxiang

可以进入 容器 页面,找到目标容器后,在操作列点击 终端 按钮进入容器内部。

wanghe-fit2cloud avatar Dec 06 '23 09:12 wanghe-fit2cloud

我这样设置有什么问题么?还是无法启动(通过自定义命令“node index.js”是可以正常启动的) 容器安装 启动命令 日志

feipinxiang avatar Dec 08 '23 13:12 feipinxiang

我这样设置有什么问题么?还是无法启动(通过自定义命令“node index.js”是可以正常启动的)

日志

还是没有在容器中正确安装 pm2 命令。 进入 容器 列表中找到目标容器后,点击右侧的 终端 按钮,进入容器内部手动命令安装,如图: image

wanghe-fit2cloud avatar Dec 22 '23 05:12 wanghe-fit2cloud

我发现现在的状态是这样的,我在“容器->终端”内“npm i pm2 -g”后,再去编辑“网站->运行环境->node.js”的启动命令,就会触发这个运行环境的重建,重建后pm2就不存在了。 仔细看我上面的截图,我其实已经成功安装过pm2了,但只要更改启动命令后重建重启运行环境pm2就不存在了

feipinxiang avatar Jan 09 '24 04:01 feipinxiang

我发现现在的状态是这样的,我在“容器->终端”内“npm i pm2 -g”后,再去编辑“网站->运行环境->node.js”的启动命令,就会触发这个运行环境的重建,重建后pm2就不存在了。 仔细看我上面的截图,我其实已经成功安装过pm2了,但只要更改启动命令后重建重启运行环境pm2就不存在了

了解,是因为重建运行环境的操作会重新构建镜像并重新运行容器,这样之前在容器内的所有操作就会丢失导致的。

wanghe-fit2cloud avatar Jan 09 '24 04:01 wanghe-fit2cloud

我们调研一下,后续版本官方来支持 pm2。

当前版本你可以先将项目手动制作为 docker 镜像,然后通过创建容器或者编排的方式来维护项目。

wanghe-fit2cloud avatar Jan 09 '24 04:01 wanghe-fit2cloud

我们调研一下,后续版本官方来支持 pm2。

当前版本你可以先将项目手动制作为 docker 镜像,然后通过创建容器或者编排的方式来维护项目。

请问这个有后续吗?是不是把node的默认镜像改为带pm2的就可以?

feipinxiang avatar Mar 25 '24 10:03 feipinxiang