Capistranoで自動デプロイをしていると、エラーが発生しました
テキストだと下記ですね
mkdir stdout: Nothing written
mkdir stderr: mkdir: ディレクトリ `/var/www' を作成できません: 許可がありません
mkdir: ディレクトリ `/var/www' を作成できません: 許可がありません
このエラー"var/www/アプリ名"のディレクトリにしている場合は、パーミッションの問題等だと思いますが、、、
「 "var/www/アプリ名"使ってないんですけど!!!
なんでエラーが出るんだよ!!!
"www"が気に食わないから、別のフォルダ名にしてるんですけど!!!
他の記述も確認したけど、全部"var/www/アプリ名"書いてねええよ!!! 」
という人向けに対処方法を解説します。
原因
CapistranoのHPにも記載されていますが、
デフォルトだと"var/www/アプリ名"を読み込見ます。
でも"var/www/アプリ名"のディレクトリにアプリを保存していないので、
「アプリないから、自動デプロイできないで」という状態です。
だから手動デプロイだとうまく行きますが、Capistranoを使った自動デプロイではエラーが発生したわけです。
解決策
結論: Capistranoのデフォルト設定が"var/www/アプリ名"を読み込むので、オプション設定で変更する。
deploy.rb
# 下記を挿入してください
set :deploy_to, '/var/○○○(ディレクトリ名)/○○○(アプリ名)'
これを挿入することで、EC2にあるアプリの保存場所を正しく認識され、Capistranoで読み込みが可能となります。
あとは自動デプロイを実行しましょう
# アプリケーションのディレクトリで実行する
$ bundle exec cap production deploy
今度はうまくいくはずです。
[参考](https://capistranorb.com/documentation/getting-started/configuration/)