【发布时间】:2017-07-09 15:34:50
【问题描述】:
我的项目中有很多资产。服务器中的预编译任务非常慢并且耗尽了主机(CPU 利用率 100%,平均延迟高)。
我的想法是预编译本地主机中的所有资产并将所有已预编译的文件发送到 GIT(主)。
在部署操作(cap production deploy)中,避免预编译任务,在服务器中,阻止任何预编译任务。
服务器使用通过 capistrano 发送的已经预编译的文件,在 GIT 中可用。
有可能吗?如果是,怎么办? 如果不是,是否有另一种解决方案来避免服务器预编译资产?
在我的配置下:
宝石文件
gem 'capistrano-rails', group: :development
gem 'capistrano-faster-assets', '~> 1.0', group: :development
Capfile
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rails'
require 'capistrano/faster_assets'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
config/environments/production.rb
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
config.assets.compile = true
config.assets.digest = true
other assets configs in this file is commented
环境信息
OS: Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-48-generic x86_64)
ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
rails -v: 4.2.3
nginx -v: nginx/1.8.0
passenger -v: 5.0.10
如果您需要更多信息,请在 cmets 上告诉我。
【问题讨论】:
标签: ruby-on-rails-4 amazon-ec2 deployment capistrano3