capistrano2を使っていましたが3を使うことにします。
capifyではなくcap installによって初期化します。 ぱっと見あんまり変わってないようで全然分かりませんし、参考ブログみつつやってもエラーでまくります。
cap staging deployとやると、下記エラーがでます。
Stage not set, please call something such as cap production deploy
, where production is a stage you have defined.
cap -Tとやると、下記エラーがでます。 cap aborted! Don't know how to build task 'load:defaults'
/usr/local/rvm/gems/ruby-2.0.0-p451@rails3/gems/capistrano-3.1.0/lib/capistrano/dsl.rb:14:in `invoke' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/gems/capistrano-3.1.0/lib/capistrano/application.rb:47:in `load_imports' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/gems/capistrano-3.1.0/lib/capistrano/application.rb:24:in `load_rakefile' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/gems/capistrano-3.1.0/lib/capistrano/application.rb:15:in `run' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/gems/capistrano-3.1.0/bin/cap:3:in `<top (required)>' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/bin/cap:23:in `load' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/bin/cap:23:in `<main>' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/bin/ruby_executable_hooks:15:in `eval' /usr/local/rvm/gems/ruby-2.0.0-p451@rails3/bin/ruby_executable_hooks:15:in `<main>' (See full trace by running task with --trace)
悲しいです。
Capistrano 3: Setting a Default Stageここに何となくそれっぽいことが書いてあるので調べてみます。
あら、Capfileがある場所でやるとできるな。2の場合確かどこでもできたんだけどな。まあ解決したな。
staging.rbに下記を設定して、cap staging deployしてみたらエラーがでました。
role :app, %w{hoge@hoge.biz} role :web, %w{hoge@hoge.biz} role :db, %w{hoge@hoge.biz} server 'hoge.biz', user: 'hoge', roles: %w{web app}, my_property: :my_value server 'hoge.biz', user: 'hoge', ssh_options: { keys: %w(/hoge/.ssh/id_rsa), forward_agent: true, }
DEBUG [725731e3] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/hoge/git-ssh.sh /usr/bin/env git ls-remote git@github.com:hoge/hoge.git ) DEBUG [725731e3] GIT_ASKPASS=/bin/echo: Command not found. DEBUG [725731e3] Finished in 0.067 seconds with exit status 1 (failed).
GIT_ASKPASSっていう環境変数に値を入れることができないのだ。これはcapistranoとか俺が悪いんじゃなくサクラサーバのレンタルサーバが環境変数の設定を禁止してるからか!何度もやっちゃったよ!