我正在使用 Elastic Beanstalk 部署一个应用程序,并且该应用程序的一部分有一个运行“sass”的 grunt 任务,我已经安装了 sass,但它是在本地安装的,因此不是 PATH 的一部分
,因此 grunt 任务失败。
我刚刚尝试向 beanstalk 配置添加一个 命令
,该命令执行 sudo gem install sass
但失败,并显示 Command failed on instance。返回代码:1 输出:sudo:抱歉,您必须有一个 tty 才能运行 sudo。
让 sass 进入 PATH 的最佳方法是什么?似乎没有一个简单的方法来更新 PATH/使用 elastic beanstalk 设置 .bashrc
最佳答案
使用 ebextensions 命令是正确的方法。您不需要 sudo,因为命令以必要的权限运行。
看起来您正在使用节点解决方案堆栈(因为您提到了 grunt)。您的实例上可能有多个版本的 ruby。您需要确保使用正确的 gem 二进制文件,以便您的依赖项安装在正确的位置。
在 /usr/bin
中安装了一个 ruby,在 /opt/elasticbeanstalk/lib
中安装了另一个 ruby。后者由 Elastic Beanstalk 使用,这不是您想要的。您想要在 /usr/bin
下运行 gem 二进制文件。
关于amazon-web-services - 使用 Elastic Beanstalk 全局安装包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30252047/