rails4でGithubからEC2にCapistrano3でデプロイする時、大苦戦
$ bundle exec cap production deploy
これが悪夢の始まり
1.ご挨拶の構文エラー
まず導入したばかりのAtom氏も御立腹の構文エラー。
見事に「'」が一個たりないですな。
garlicboys TONE RIVER JAM'10_02 - YouTube
2.ec2-user以外に作ったデプロイ用ユーザに、sshキーを追加忘れ
$ sudo cp -arp /home/ec2-user/.ssh /home/デプロイ用ユーザ/
3.capistranoはsshキーを理解できない盆暗殿
DEBUG [6b087c62] Command: ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.0 GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/yoshidaagri/git-ssh.sh /usr/bin/env git ls-remote -h git@github.com:yoshidaagri/yoshidaagri.git )
DEBUG [6b087c62] Permission denied (publickey).
DEBUG [6b087c62] fatal: Could not read from remote repository.
DEBUG [6b087c62]
DEBUG [6b087c62] Please make sure you have the correct access rights
DEBUG [6b087c62] and the repository exists.
DEBUG [6b087c62] Finished in 1.671 seconds with exit status 128 (failed).
どうも、ローカルから以下のコマンドでクリアできる。
$ssh-add
Identity added: /Users/user_name/.ssh/id_rsa (/Users/user_naame/.ssh/id_rsa)
4.権限不足
`/var/www/my_app/shared' を作成できません: 許可がありません
これはroot権限でフォルダほったらかしにしている自らの怠慢...
権限をデプロイユーザにchownして、権限を実行権限と書き込み権限を与えて終了
5.mysqlへ接続できないです
DEBUG [3779b8f7] rake aborted!
DEBUG [3779b8f7] Mysql2::Error: Can't connect to MySQL server
1.EC2にDBを同居させる場合、database.ymlのproduction節,hostはlocalhostとしなければならない。EC2に限った事ではない。
6.mysqlのユーザが見当たらないです。passはあってるけど
その後、mysqlに事前に作っていたproduction用のuser hostをlocalhostにしておくこと.
7.デプロイは成功
INFO [16140426] Finished in 0.193 seconds with exit status 0 (successful).
アプリのパスに成果物がUPされているかも確認...
deploy.rbのset :deploy_toで指定したディレクトリのcurrentフォルダにある。
relesesディレクトリには過去5回のdeploy結果が残っている。おー。
ひとまずゴール。次はEC2で構築したアプリが外部から参照できるのか確認。