在Elastic-Beanstalk上进行纱线安装期间出现权限错误

mon*_*nie 5 ruby-on-rails amazon-elastic-beanstalk devops webpacker

我们正在使用elastic-beanstalk我们的服务器。我们正在使用webpackerwith rails来编译和捆绑一个react应用程序。部署日志时,我们得到以下信息

yarn install v1.0.2
[1/4] Resolving packages...
Webpacker is installed  
Using /var/app/ondeck/config/webpacker.yml file for setting up webpack paths
Compiling…
Compilation failed:

./bin/webpack:26:in `exec': No such file or directory - /var/app/ondeck/node_modules/.bin/webpack (Errno::ENOENT)
from ./bin/webpack:26:in `block in <main>'
from ./bin/webpack:25:in `chdir'
from ./bin/webpack:25:in `<main>'
(Executor::NonZeroExitStatus)
Run Code Online (Sandbox Code Playgroud)

似乎没有安装第2步或第4步,因此安装纱包时出错。

当我SSH进入服务器时,转到ondeck目录,该目录包含我相信的最新代码,然后运行yarn install,我得到:

error Could not write file "/var/app/ondeck/yarn-error.log": "EACCES: 
permission denied, open '/var/app/ondeck/yarn-error.log'"
error An unexpected error occurred: "EACCES: permission denied, mkdir 
'/var/app/ondeck/node_modules'".
Run Code Online (Sandbox Code Playgroud)

当我使用sudo yarn install它时,当我使用来更新权限时sudo chmod -R 777 /var/app,它就起作用了。所以我尝试将chmod命令添加到中,.ebextensions config file但是我没有运气。

奇怪的是,我们正在使用两台服务器,elastic-beanstalk而第一台使用相同的代码和配置文件正确部署。然后,此服务器无法正确部署,因此除非有人手动更改它们,否则我无法理解服务器之间的权限可能会有所不同。

我在这里的webpacker中创建了一个问题:https : //github.com/rails/webpacker/issues/810