Ruby on rails 3 尝试在AWS Elastic Beanstalk上预编译资产

Ruby on rails 3 尝试在AWS Elastic Beanstalk上预编译资产,ruby-on-rails-3,amazon-web-services,asset-pipeline,amazon-elastic-beanstalk,Ruby On Rails 3,Amazon Web Services,Asset Pipeline,Amazon Elastic Beanstalk,如何在AWS Elastic Beanstalk上预编译资产 我遇到以下错误您可以通过在应用程序部署之前或之后运行脚本来自定义系统。 基本上,您需要在源代码中创建.ebextensions目录,并以YAML语法插入命令和自定义步骤。 报告解释了细节 请注意,这些命令是以“root”身份运行的,没有环境变量设置。如果您需要像PATH或其他变量,则由您来定位它们 下面是我为一个需要从源代码安装NodeJS模块的应用程序编写的示例 2013-11-03 20:30:48,342 [INFO] (301

如何在AWS Elastic Beanstalk上预编译资产


我遇到以下错误

您可以通过在应用程序部署之前或之后运行脚本来自定义系统。 基本上,您需要在源代码中创建
.ebextensions
目录,并以YAML语法插入命令和自定义步骤。
报告解释了细节

请注意,这些命令是以“root”身份运行的,没有环境变量设置。如果您需要像
PATH
或其他变量,则由您来定位它们

下面是我为一个需要从源代码安装NodeJS模块的应用程序编写的示例

2013-11-03 20:30:48,342 [INFO] (30173 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: /usr/bin/ruby1.9 /usr/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Command failed with status (): [/usr/bin/ruby1.9 /usr/bin/rake assets:prec...]

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Rake task failed to run, skipping asset compilation.

资产的预编译可以在部署时完成,为此,请转到Rails项目的根目录并创建一个
.ebextensions
目录,其中包含一个
.config
文件。您可以在那里指定预编译。我正在运行一个带有Elastic Beanstalk的Rails应用程序,但遇到字体无法显示的问题。这是我的
.ebextensions/ruby.config
文件:

packages:
   yum:
      gcc: []
      gcc-c++: []


container_commands:

   10_pre_install_sqlite3:
      command: "/opt/elasticbeanstalk/node-install/node-v0.10.21-linux-x64/bin/npm install sqlite3@2.1.16 --build-from-source"
      cwd: "/tmp/deployment/application"
      env:
          HOME: "/root"
          PATH: "/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin"
packages:
  yum:
    git: []

container_commands:
  01_assets:
    command: RAILS_ENV=production bundle exec rake assets:precompile
    leader_only: true