在 aws elastic beanstalk 中启动节点 pm2 进程管理器的问题,npm 更新检查失败

Posted

技术标签:

【中文标题】在 aws elastic beanstalk 中启动节点 pm2 进程管理器的问题,npm 更新检查失败【英文标题】:Issue with starting node pm2 process manager in aws elastic beanstalk, npm update check failed 【发布时间】:2020-01-13 16:29:22 【问题描述】:

我正在尝试使用 pm2 来管理我的 typescript 节点应用程序,该应用程序已部署到 elasticbeanstalk。

每次 pm2 启动一个新实例时,我都会在日志中看到它

----------node.js 日志----------- ------

pm2 start pm2.yaml

[PM2] Spawning PM2 daemon with pm2_home=/tmp/.pm2 [PM2] PM2 Successfully daemonized [PM2][WARN] Applications server not running, starting... [PM2] App [server] launched (1 instances)

Use pm2 show <id|name> to get more details about an app

npm update check failed Try running with sudo or get access to the local update config store via sudo chown -R $USER:$(id -gn $USER) /tmp/.config

----------结束---------- -

然后它每次尝试重新启动应用程序并启动另一个实例,最终以应用程序的降级结束。

我尝试使用它建议的命令,但无济于事。

我们将不胜感激任何帮助。 :)

【问题讨论】:

您找到解决方案了吗?谢谢! 【参考方案1】:

我遇到了同样的问题。解决方案是向 Elastic Beanstalk nodejs 用户添加权限,以便它访问 /tmp/.config。为此,您可以要求 Elastic Beanstalk 运行以下 ebextensions 部署后 shell 脚本:

.ebextensions/00_set_npm_permissions.config

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/00_set_tmp_permissions.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      chown -R nodejs:nodejs /tmp/.config

我希望这会有所帮助。

【讨论】:

以上是关于在 aws elastic beanstalk 中启动节点 pm2 进程管理器的问题,npm 更新检查失败的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS elastic-beanstalk 中更改我的 python 版本

如何在 AWS Elastic Beanstalk 中更改数据库配置

在 AWS Elastic Beanstalk 和 EKS 上部署了一个 laravel 应用程序 相同的数据库 RDS 为啥在 Elastic Beanstalk 中获得快速响应

如何在 AWS Elastic Beanstalk 中选择特定平台?

在 AWS Elastic Beanstalk 中运行 composer 命令

AWS Elastic Beanstalk 中的 HTTPS 配置