#author("2016-06-17T11:41:28+09:00","default:wikiwriter","wikiwriter")
[[Capistrano3]]

&tag(Capistrano3/トラブルシューティング);
*目次 [#u9c1ce01]
#contents
*関連ページ [#fbaba88d]
*参考情報 [#uff8e943]

*トラブルシューティング方法 [#g1d276b6]

**ログのデバッグ出力 [#r4f8eb85]
-traceオプションを追加するとより詳細なログが表示される
 bundle exec cap production deploy --trace
-それでも足らないときはdeploy.rbに以下を追加。
 set :log_level, :debug
-さらにlogs/capistrano.logも利用できる。

**gem installがうまくいっていない場合 [#pab134de]
-ログからコマンドを抜き出し ssh xxx 'コマンド'を実行してみると良いかも。-quietオプションは除去するとよい。
 ssh remotehost 'cd /Users/sora/www/myapp/releases/20160616053411 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.1" ; $HOME/.rbenv/bin/rbenv exec bundle install --path /Users/sora/www/myapp/shared/bundle --without development test --deployment --)'


**環境変数の確認 [#aa1be483]
-sshで実行している際リモートの環境変数が原因でうまくRubyGemがインストールできない場合もある(rmagickとか)
-この場合以下のようなタスクを作成しておき実行する。
#pre{{
task :printenv do
  on roles(:web) do |host|
    execute "printenv"
  end
end
}}
-タスクの呼び出し
 bundle exec cap production printenv



*エラー例 [#l88efaa6]

**デプロイ後にassetsがプリコンパイルされない [#ce91609e]
-Capfileでrequire 'capistrano/rails/assets'が有効になっているかどうか確認する。

**デプロイ後ExecJS and could not find a JavaScript runtimeエラーが発生 [#ta14004a]
-[[ruby on rails 3.1 - ExecJS and could not find a JavaScript runtime - Stack Overflow:http://stackoverflow.com/questions/6282307/execjs-and-could-not-find-a-javascript-runtime]]によると、サーバー環境にNode.jsをインストールする。
#pre{{
sudo apt-get install nodejs
sudo yum install nodejs
}}

**デプロイ後「fatal: Not a git repository (or any of the parent directories): .git」と言われてしまう [#e2931787]
-Gemfileにローカルフォルダで管理しているgemファイルを追加していて、そのgemspecで以下のようにgitを使っているから。
 gem.files         = `git ls-files`.split($\)
-deploy先に.gitフォルダが存在しないためこのような減少が発生する模様。
-ローカルフォルダでgemを管理するのはやめたほうが良いかもしれない。
-もしくはgemspecでgit ls-filesを使わないようにするか。 [[`git ls-files` in gemspec template is bad practice. · Issue #2287 · bundler/bundler:https://github.com/bundler/bundler/issues/2287]]

**「Command: [ -d /var/www/myapp/releases/20140211033611/public/assets ]」のようなわけのわからないエラーが発生 [#ve91d55a]
-[[ruby on rails - Capistrano 3 process failing - Stack Overflow:http://stackoverflow.com/questions/21692601/capistrano-3-process-failing]]によるととりあえず気にしなくても良いのだろうか。


**「Command : [ -L ...]」が exit status 1 (failed).で失敗する [#te9478f2]
-[[ruby - Capistrano 3 deploy failed messages - exit status 1 (failed) - Stack Overflow:http://stackoverflow.com/questions/33128623/capistrano-3-deploy-failed-messages-exit-status-1-failed]]
-致命的エラーならばCapistranoが止まるはずなので気にしなくてよい(のか?)
** Too many authentication failuresが発生 [#af93b281]
-sshをコマンドラインから使うと問題ない。SSHKitの問題?とりあえず以下で一時的に解決できる
 ssh-add -D

** rbenv: 2.3.1 is not installed or not found in $HOME/.rbenv/versions/2.3.1 [#n803c835]
-リモートに該当するRubyのバージョンがインストールされていないのが原因。rbenv installする。


*rmagick [#b2e45a6e]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS