如何通过部署 Node.js AWS Beanstalk 解决 /tmp/.config 中的权限问题?
Posted
技术标签:
【中文标题】如何通过部署 Node.js AWS Beanstalk 解决 /tmp/.config 中的权限问题?【英文标题】:how to fix permission problem in /tmp/.config by deployment Node.js AWS Beanstalk? 【发布时间】:2020-08-17 06:31:58 【问题描述】:我正在尝试将我的 React 应用程序部署到 Node.js AWS Beanstalk 不幸的是一直在 /var/log/nodejs/nodejs.log:
ℹ 「wds」: Project is running at http://172.31.28.128/
ℹ 「wds」: webpack output is served from
ℹ 「wds」: Content not from webpack is served from /var/app/current/public
ℹ 「wds」: 404s will fallback to /
Starting the development server...
┌──────────────────────────────────────────────────┐
│ 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 │
└──────────────────────────────────────────────────┘
我已经尝试了所有可能的解决方案,包括:
通过 .ebextensions 中的配置更改权限(检查了许多变体) .npmrc 文件 unsafe-perm=true 在应用程序的根文件夹中(也添加到 src 只是为了检查) 环境属性中的 NPM_CONFIG_UNSAFE_PERM=true 删除 package-lock.json 然后 npm I 将实例更改为更强大的,目前为 t2.small有趣的事实是 /tmp/.config 当前拥有足够的权限,但仍然失败
drwxrwxrwx 3 ec2-user ec2-user 4096 May 2 12:05 .config
在我通过 eb deploy 部署的文件下方(我从 s3 下载)
wrmac:app-388c-200502_153210 wojtek$ ls -la
total 1600
drwxr-xr-x@ 12 wojtek staff 384 May 2 20:57 .
drwx------@ 294 wojtek staff 9408 May 2 20:57 ..
-rw-r--r--@ 1 wojtek staff 6148 May 2 20:57 .DS_Store
drwxr-xr-x@ 4 wojtek staff 128 May 2 15:22 .ebextensions
-rw-r--r--@ 1 wojtek staff 407 May 1 15:26 .gitignore
-rw-r--r--@ 1 wojtek staff 17 May 2 14:46 .npmrc
-rw-r--r--@ 1 wojtek staff 121322 Sep 29 2018 README.md
-rw-r--r--@ 1 wojtek staff 296 Sep 29 2018 frontend.iml
-rw-r--r--@ 1 wojtek staff 667957 May 2 15:31 package-lock.json
-rw-r--r--@ 1 wojtek staff 1035 May 1 22:14 package.json
drwxr-xr-x@ 11 wojtek staff 352 Oct 17 2019 public
drwxr-xr-x@ 13 wojtek staff 416 May 2 14:46 src
wrmac:app-388c-200502_153210 wojtek$ ls -la .ebextensions/
total 16
drwxr-xr-x@ 4 wojtek staff 128 May 2 15:22 .
drwxr-xr-x@ 12 wojtek staff 384 May 2 20:57 ..
-rw-r--r--@ 1 wojtek staff 212 May 2 14:45 00_change_npm_permissions.config
-rw-r--r--@ 1 wojtek staff 3856 Apr 25 15:40 https-redirect-nodejs.config
如您所见,我没有 node_modules 对某些人来说是什么情况。 在 .ebignore 我也排除了
node_modules/
.idea/
.git/
(我也尝试过排除 .DS_Store、.gitignore 和 frontend.iml)
我还有另外两个环境属性:NODE_ENV 和 NPM_CONFIG_PRODUCTION,都是真的。
具体来说我正在使用:
Platform branch Node.js running on 64bit Amazon Linux Current platform
version 4.14.1 Current Node.js version 12.16.1
你有什么想法可以解决这个问题吗?
【问题讨论】:
【参考方案1】:对于这个奇怪的 AWS 特定问题,似乎唯一的解决方案是购买他们的“商业”支持,成本 >100 美元,还有更便宜的“开发者”支持选项,但根据描述可能还不够。
最后我决定转向完全解决我的问题的 VPS(不同的托管服务提供商),另外它比 AWS 便宜几倍,我没有这种奇怪的 cpu 周期计数,价格很容易预测,可能很少有其他的好处。
【讨论】:
以上是关于如何通过部署 Node.js AWS Beanstalk 解决 /tmp/.config 中的权限问题?的主要内容,如果未能解决你的问题,请参考以下文章
如何从部署在 AWS Elastic beanstalk 上的 node.js express 应用程序获取客户端 IP?
AWS 部署 NGINX 连接被拒绝用于 Node.JS 项目