Laravel Elastic Beanstalk,无法安装运行npm?

时间:2017-08-21 12:59:48

标签: node.js laravel amazon-web-services npm amazon-linux

我在Laravel 5.4中使用了Elastic Beanstalk,这是我的02-node.config:

commands:
  01-install-node:
    command: "curl --silent --location https://rpm.nodesource.com/setup_8.x | s$
    command: "sudo yum -y install nodejs"

03-deploy.config

container_commands:
  01-laravel-deploy:
    command: "php artisan migrate"
    command: "php artisan config:clear"
    command: "php artisan config:cache"
    command: "php artisan route:clear"
    command: "php artisan route:cache"
    command: "npm install"
    command: "npm run prod"

在部署期间,我得到:

ERROR: [Instance: i-018d9dd563f6ba0e6] Command failed on instance. Return code: 1 Output: (TRUNCATED)...ar/app/ondeck
npm ERR! node -v v0.10.48
npm ERR! npm -v 1.3.6
npm ERR! syscall spawn
npm ERR! code ENOENT
npm ERR! errno ENOENT
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /var/app/ondeck/npm-debug.log
npm ERR! not ok code 0.
container_command 01-laravel-deploy in .ebextensions/03-deploy.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
INFO: Command execution completed on all instances. Summary: [Successful: 0, Failed: 1].
ERROR: Unsuccessful command execution on instance id(s) 'i-018d9dd563f6ba0e6'. Aborting the operation.
ERROR: Failed to deploy application.

有谁知道为什么会这样?

2 个答案:

答案 0 :(得分:0)

这一行:

command: "curl --silent --location https://rpm.nodesource.com/setup_8.x | s$

没有任何意义。双引号未关闭,您可以将其重定向到s$,但您应该重定向到bash,所以:

command: "curl -sL https://rpm.nodesource.com/setup_8.x | bash -E -"

有关错误的详细信息,请按照建议检查:npm-debug.logeb-activity.log

答案 1 :(得分:0)

问题是因为npm无权执行npm安装。选中此link以获得正确的解决方案。