【问题标题】:Trying to precompile assets on AWS Elastic Beanstalk尝试在 AWS Elastic Beanstalk 上预编译资产
【发布时间】:2013-11-14 12:06:14
【问题描述】:
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.

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

我收到以下错误

【问题讨论】:

    标签: ruby-on-rails-3 amazon-web-services asset-pipeline amazon-elastic-beanstalk


    【解决方案1】:

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

    packages:
      yum:
        git: []
    
    container_commands:
      01_assets:
        command: RAILS_ENV=production bundle exec rake assets:precompile
        leader_only: true
    

    【讨论】:

      【解决方案2】:

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

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

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

      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"
      

      【讨论】:

        猜你喜欢
        • 2019-06-17
        • 1970-01-01
        • 2012-06-26
        • 2013-01-01
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多