前置き
Capistranoにて、再起動した際にエラーが出るため自分用にメモ
エラー内容
# アプリケーションのディレクトリで実行する
$ bundle exec cap production deploy
を行なった際にgit:check項目でエラーになる。
00:00 git:check
Caused by:
SSHKit::Command::Failed: git exit status: 128
git stdout: Nothing written
git stderr: Permission denied (publickey).
fatal: Could not read from remote repository.
cloneする前に「git ls-remote」でリポジトリの中身を確認しているようですが、その時に「Permission denied(publickey)」とエラーが出ています。
対策
まず秘密鍵を確認します。
$ ssh-add -l
Could not open a connection to your authentication agent.
何か怒られた、、、ssh-agentを先に起動させないといけないみたいですね。
$ eval `ssh-agent`
Agent pid 1637
再度確認
$ ssh-add -l
The agent has no identities.
どうやら設定されていないみたいなので、gitのキーを設定してあげましょう。
gitのキーがそもそもない人はこちらを参考に
$ ssh-add ~/.ssh/(gitの秘密鍵のフォルダ名)
再度自動デプロイ
# アプリケーションのディレクトリで実行する
$ bundle exec cap production deploy
無事デプロイ完了