Capistrano3
Tag: Capistrano3/トラブルシューティング
関連ページ†
参考情報†
トラブルシューティング方法†
listタスクを実行してみる†
ログのデバッグ出力†
gem installがうまくいっていない場合†
環境変数の確認†
エラー対策†
デプロイ後にassetsがプリコンパイルされない†
- Capfileでrequire 'capistrano/rails/assets'が有効になっているかどうか確認する。
デプロイ後ExecJS and could not find a JavaScript runtimeエラーが発生†
デプロイ後「fatal: Not a git repository (or any of the parent directories): .git」と言われてしまう†
「Command: [ -d /var/www/myapp/releases/20140211033611/public/assets ]」のようなわけのわからないエラーが発生†
「Command : [ -L ...]」が exit status 1 (failed).で失敗する†
Too many authentication failuresが発生†
- sshをコマンドラインから使うと問題ない。SSHKitの問題?とりあえず以下で一時的に解決できる
ssh-add -D
rbenv: 2.3.1 is not installed or not found in $HOME/.rbenv/versions/2.3.1†
- リモートに該当するRubyのバージョンがインストールされていないのが原因。rbenv installする。
rmagickがインストールできない†
rmagickがインストールできない: その2†
nokogiriがインストールできない†
- macOSにインストールした際にエラーが起きる場合、deploy.rbなどに以下を追加する。
set :bundle_env_variables, { nokogiri_use_system_libraries: 1 }
- さらにdeploy先でMacPortsを使っている場合、pkg-configのパスも指定しないといけない。staging.rb/production.rbなどでパスを指定。
set :default_env, {
# 'PKG_CONFIG_PATH' => '/opt/local/bin'
'PATH' => "/opt/local/bin:$PATH"
}
SocketError: getaddrinfo: nodename nor servname provided, or not known†
- 仮想環境にdeployしようとしたときに発生。.ssh/configでHostnameのところにIPアドレスを指定すればよくなった。Hostnameのところに仮想ホスト名を記述すすると例え/etc/hostsに記述してある名前でもうまくいかない。この場合Capistrano関係なく、pingはいけてもsshがいけない状態となっているのでそこから確認する。
deploy:symlink:linked_dirsのエラー†
- lnが失敗している模様。ディレクトリの削除がいっていないのでうまくいっていない?
- 原因は不明だが、デプロイファイル(staging.rb)で、serverで指定したホスト名と、roleで指定したホスト名が一致していなかったのが原因だったのかも(serverのほうがホスト名で、roleのほうがIPアドレスになっていた)。
openssh(sshクライアント)でログインしたあとCapistranoでデプロイしようとするとHostKeyMissmatchが発生†
$HOME/.rbenv/bin/rbenv exec bundle check --pathがfailedになっている。†
- その後の処理でInstall missing gems with `bundle install`によってたらないgemsがインストールされている。すなわち正常な処理かも。