Yeni oluşturulan Rails 4 uygulamasıyla Capistrano 3 kullanıyorum. Benim dağıtım çalışıyor ama üretim sunucusunda bundle exec rails console
çalıştırdığınızda, Rails bir uyarı olsun:Capistrano 3 dağıtım?
Nitekim dağıtım sırasında üretilen binstubs depoda binstubs üzerine Capistrano konfigürasyonunu Rails 4 ile uyumlu hale getirmek için?uygulamanızın ./bin/rails benziyor Bundler tarafından oluşturulan bir taslaktır.
Raylar 4'te, uygulamanızın bin/dizini, istek üzerine oluşturulan dizeler yerine, diğer kaynak kodları gibi sürümlendirilmiş yürütülebilir dosyaları içerir.
orijinal binstub: Üretimde
$ cat bin/rails #!/usr/bin/env ruby begin load File.expand_path("../spring", __FILE__) rescue LoadError end APP_PATH = File.expand_path('../../config/application', __FILE__) require_relative '../config/boot' require 'rails/commands'
binstub:
$ cat bin/rails #!/usr/bin/env ruby # # This file was generated by Bundler. # # The application 'rails' is installed as part of a gem, and # this file is here to facilitate running it. # require 'pathname' ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../../releases/20140930173754/Gemfile", Pathname.new(__FILE__).realpath) require 'rubygems' require 'bundler/setup' load Gem.bin_path('railties', 'rails')
Değişmesi gereken
# Gemfile
group :development do
gem 'capistrano', '~> 3.1'
gem 'capistrano-rbenv', '~> 2.0'
gem 'capistrano-bundler', '~> 1.1.2'
gem 'capistrano-rails', '~> 1.1'
end
# config/deploy.rb
lock '3.2.1'
# ...
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
# ...
Diğer her şey varsayılan ayarları kullanıyor.
Bu tam çözüm bu konu için bir düzeltme olarak uygulanmaktadır burada https://github.com/capistrano/bundler/issues/45 – s01ipsist
Ahh bilmek için teşekkürler, bağlantı için teşekkürler! –