我正在尝试使用CLI将我的Rails应用程序部署到Elastic Beanstalk。 rails app部署得很好(资产编译,数据库迁移等)。但是,我无法运行 MediaInfo m =
new MediaInfo.Builder("http://selevision9877-i.akamaihd.net/hls/live/219121/98773/1.m3u8")
.setContentType("video/mp4")
.setStreamType(MediaInfo.STREAM_TYPE_LIVE)
.build();
。我尝试运行bower install
并将其安装到\ opt,但在尝试运行bower命令时,它并不认识bower已安装在系统中。
这是我的问题:
1)为什么我的app目录无法访问?
2)我如何获得它以便EB自动运行sudo npm install -g bower
(我使用bower-rails gem与资产管道兼容)?
3)我如何获得它以便EB自动安装npm以便第2部分可以在上面工作?
谢谢你,希望我的问题有道理。 (相对较新的AWS)
答案 0 :(得分:1)
我找到了更好的解决方案。而不是使用Bower Rails gem,只需在根目录中使用标准的bower.json文件。
然后,创建一个配置文件:.ebextension / ruby-settings.config,其中包含以下内容:
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/03_bower_install.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
echo "starting to install bower via npm"
sudo npm install bower -g --prefix /usr/local --allow-root
echo "starting to install git"
sudo yum install git
echo "changing directory to /var/app/ondeck"
cd /var/app/ondeck
ls
echo "running bower install"
sudo $(which bower) install --allow-root
这利用弹性beanstalk的预部署挂钩,并允许安装bower和bower install
以在资产预编译之前运行。