node.js - 在 Elastic Beanstalk 上部署 KeystoneJS 时遇到问题

标签 node.js amazon-web-services amazon-elastic-beanstalk keystonejs

我有一个 KeystoneJS 应用程序,正在尝试将其部署到 t2.micro 实例上的 Elastic Beanstalk 上。在部署过程中,部署出错,并在 eb-activity.log 中输出以下内容:

> kerberos@0.0.11 install /tmp/deployment/application/node_modules/keystone/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos
> (node-gyp rebuild 2> builderror.log) || (exit 0)


Running npm install: /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm
Setting npm config jobs to 1
npm config jobs set to 1
Running npm with --production flag
Failed to run npm install. Snapshot logs for more details.
Traceback (most recent call last):
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 681, in 
main()
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 663, in main
node_version_manager.run_npm_install(options.app_path)
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 131, in run_npm_install
self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir'))
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 166, in npm_install
raise e
subprocess.CalledProcessError: Command '['/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm', '--production', 'install']' returned non-zero exit status -9.

我还检查了 npm-debug.log 并看到以下内容:

127706 info install kerberos@0.0.11
127707 silly gunzTarPerm extractEntry _baseAssign.js
127708 silly gunzTarPerm extractEntry _assignInDefaults.js
127709 silly gunzTarPerm extractEntry unzip.js
127710 silly gunzTarPerm extractEntry uniq.js
127711 silly gunzTarPerm extractEntry _baseGt.js
127712 silly gunzTarPerm extractEntry tap.js
127713 silly gunzTarPerm extractEntry _baseFor.js
127714 silly gunzTarPerm extractEntry toFinite.js
127715 silly gunzTarPerm extractEntry _baseFor.js
127716 silly gunzTarPerm extractEntry toFinite.js
127717 silly gunzTarPerm extractEntry es6/weak-map.js
127718 silly gunzTarPerm modified mode [ 'es6/weak-map.js', 438, 420 ]
127719 verbose unsafe-perm in lifecycle false
127720 verbose stack Error: spawn ENOMEM
127720 verbose stack     at exports._errnoException (util.js:870:11)
127720 verbose stack     at ChildProcess.spawn (internal/child_process.js:298:11)
127720 verbose stack     at exports.spawn (child_process.js:362:9)
127720 verbose stack     at spawn (/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/lib/node_modules/npm/lib/utils/spawn.js:7:13)
127720 verbose stack     at runCmd_ (/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/lib/node_modules/npm/lib/utils/lifecycle.js:211:14)
127720 verbose stack     at /opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/lib/node_modules/npm/lib/utils/lifecycle.js:179:7
127720 verbose stack     at nextTickCallbackWith0Args (node.js:420:9)
127720 verbose stack     at process._tickCallback (node.js:349:13)
127721 verbose cwd /tmp/deployment/application
127722 error Linux 4.4.8-20.46.amzn1.x86_64
127723 error argv "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.4.3-linux-x64/bin/npm" "--production" "install"
127724 error node v4.4.3
127725 error npm  v2.15.1
127726 error code ENOMEM
127727 error errno ENOMEM
127728 error syscall spawn
127729 error spawn ENOMEM
127730 error If you need help, you may report this error at:
127730 error     <https://github.com/npm/npm/issues>
127731 verbose exit [ 1, true ]

如果我将实例大小增加到 t2.small,也会发生这种情况。这些实例不足以安装 KeystoneJS 吗?

最佳答案

这可能是你的 gitignore/npmignore 的问题。我会尝试在您的项目根目录中放置一个黑色的 .npmignore。

如果项目中没有.npmignore,npm默认使用.gitignore

https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package

StackOverflow引用:npm install errors with Error: ENOENT, chmod

关于node.js - 在 Elastic Beanstalk 上部署 KeystoneJS 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37327183/

相关文章:

node.js - 如何使用Sequelize在两个不直接依赖的表之间建立关系?

java - aws api 网关速度中的转义字符

ruby-on-rails - 需要指导-如何跟踪nginx-docker-rails性能问题

mysql - 持久复制 RDS MySQL 数据库到外部从站

amazon-web-services - 将 Elastic Beanstalk 配置更改为 Docker

amazon-web-services - 'hvm' 类型的实例需要虚拟化类型 't2.micro'

node.js - Webpack 的 HMR 可以做什么 Browsersync 不能做什么?

node.js - 插入到另一个有关系的表中

node.js - "npm install"独立于 npmjs.org

amazon-web-services - 如何使用 eb cli 指定 EC2 安全组