私は自分のレールアプリをデプロイしようとしています.今まではHerokuのホストでしたが、今はカピストラーノを使ってDigitalOceanにいます. 空の Rails アプリを作成する「1-Click-Rails-Application」を作成したので、Web ブラウザーでリモート サーバーを開くと、典型的な Rails のウェルカム画面 (index.html) が表示されます。リモート ディレクトリに SSH 接続すると、Rails アプリへのパスは次のようになります。
/home/rails/
rails ディレクトリ内には、コントローラーなどの典型的な rails フォルダーがあります。したがって、正しい deploy_to パスは次のようになるはずだと思いました。
set :deploy_to, "/home/rails/"
非常に多くの異なるディレクトリの提案を見てきましたが、何が正しいのか本当にわかりません。私が持っていた
set :deploy_to, "var/www/#{application}"
同様に、どちらも機能していないようでした。
エラーなしでローカル アプリを新しい VPN サーバーにアップロードできてよかったです。プライベート git リポジトリの余分なコストを節約し、自分のコンピューターから直接プッシュするために、git リポジトリの使用を避けたいと考えています。問題は、
cap production deploy:cold
多くのことを行い、エラーなしで実行されますが、何もアップロードされていないようです。少なくとも、サーバー上に「自分の」ファイルが見つかりません。ええと、ここまでたどり着いたことには本当に満足していますが、私の構成が機能しない理由がわかりません。誰かが助けてくれることを願っています。config ディレクトリにある deploy.rb を次に示します。(私はrvmを使用しています。)
require 'capistrano/ext/multistage'
require "bundler/capistrano"
require "rvm/capistrano"
set :application, "myApp"
set :user, "root"
set :port, 22
set :deploy_to, "home/rails/"
set :repository, "."
set :scm, :none
set :deploy_via, :copy
set :checkout, :export
set :use_sudo, false
#set :rvm_ruby_string, "ruby-2.0.0p195@#{application}"
set :rvm_type, :user
set :rvm_type, :system
server "xx.xxx.xx.xx", :app, :web, :db, :primary => true
after "deploy", "deploy:migrate"
Rails 3.2.13 と Ruby 2.0.0 を使用しています。どうもありがとう!
更新: 私はもともと、これを理解するために railscast カピストラーノ展開チュートリアルに従っていました。したがって、config フォルダー内に deploy フォルダーを作成し、中に production.rb と staging.rb を配置しました。
簡単に言えば、サーバーの var/www/xx.xxx.xx.xx/current/ ディレクトリ内に「私の」レールアプリを見つけました。パスは、次のように production.rb 内で指定されます。
server "xx.xxx.xx.xx", :app, :web, :db, :primary => true
set :deploy_to, "/var/www/xx.xxx.xx.xx"
上記のパスを /home/rails に変更できるようになりましたが、実際の rails アプリは current という名前の追加フォルダー内にありました。現在のディレクトリがないようにパスを記述するにはどうすればよいですか? 少なくともそこにはありませんか?