У нас есть приложение Rails 3.1, которое позволяет пользователям загружать фотографии на Amazon S3. Поскольку мы используем S3 в производстве, я хотел бы автоматически (на cap deploy
) также загружать предварительно скомпилированные активы (application.js и application.css и изображения) в наш ведро S3, где они будут обслуживаться. Достаточно просто.
Вне настройки config.action_controller.asset_host = "http://assets.example.com"
Короче говоря, Я ищу некоторые примеры рабочего "рецепта" для Capistrano, чтобы сделать это, но, похоже, не может найти современных (совместимых с конвейером компонентов). Мы успешно прекомпилируем активы, но как переместить их на S3? И, в идеале, только те, которые изменились?
"Мясо" текущего "рецепта":
...
after "deploy:update_code", "deploy:pipeline_precompile"
before "deploy:finalize_update", "deploy:copy_database_config"
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}"
end
# copy database.yml into project
task :copy_database_config do
production_db_config = "/path_to_config/#{application}.yml"
run "cp #{production_db_config} #{current_release}/config/database.yml"
`puts "replaced database.yml with live copy"`
end
task :pipeline_precompile do
run "cd #{release_path}; RAILS_ENV=production bundle exec rake assets:precompile"
end
end