capistrano 3
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してみたらエラーがでました。
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とか俺が悪いんじゃなくサクラサーバのレンタルサーバが環境変数の設定を禁止してるからか!何度もやっちゃったよ!