LoginSignup
4
1

More than 3 years have passed since last update.

Capistrano3系設定で詰まった点まとめ(Ruby/Sinatra)

Last updated at Posted at 2019-07-14

EC2でインスタンスを立てて、Capistrano3系を用いてデプロイの設定をした際に詰まった点とその対応策を書き記す。

そもそもCapistranoとは

Rubyで作られた自動デプロイツール。特定のファイルに設定を書き記したのち、コマンドを数行打つだけで、アプリケーションをデプロイしてくれる便利ツール。
諸々の設定が終わったらローカル環境から以下のコマンドを打つことによってデプロイが完了する。

bundle exec cap production deploy:check
bundle exec cap production deploy

Capistranoそれ自体や、設定の仕方については以下の記事を参照すると良い。
https://qiita.com/naoki_mochizuki/items/657aca7531b8948d267b
https://qiita.com/Salinger/items/4ee4f3c5ebd5227196c0
https://labs.gree.jp/blog/2013/12/10084/

詰まった点

bundle exec cap production deployを実行した時にたくさんのエラーが出て詰まった。

エラー1: rbenvないよエラー

エラー詳細

rbenv:validate
      WARN  rbenv: 2.6.0 is not installed or not found in /root/.rbenv/versions/2.6.0 on your_domain

解決策

deploy/production.rb内のuserを確認すること、以下のuserの部分と同じuser権限でrbenvの設定を行うこと。自分の場合、EC2インスタンス内でrootでrbenvの諸々の設定を行なっていたため上記エラーがで続けた。

server 'your_domain', user: 'ec2-user', roles: %w{app}

エラー2: github権限エラー

エラー詳細

githubにアクセスするとpermission deniedになるおなじみのやつ。

解決策

公開鍵と秘密鍵を発行してgithubアカウントに登録すると解消。
https://qiita.com/shizuma/items/2b2f873a0034839e47ce

エラー3: mkdir権限ないよエラー

エラー詳細

mkdirを実行する権限がなく、permission deniedになる。

解決策

権限変更すると解消。
参照: https://qiita.com/itoufo/items/dbd1ef1081fa70f4d24f

エラー4: .envないよエラー

エラー詳細

ERROR linked file /var/www/your_app/shared/.env does not exist on...

解決策

該当ディレクトリに.envファイルを作成すると解消

エラー5: rbenvインストールされてないよエラー

エラー詳細

bundle stdout: rbenv: version `2.6.0' is not installed (set by RBENV_VERSION environment variable)

解決策

config/deploy.rbに書かれている以下のコードのpathを絶対パスに変更すると解消

set :rbenv_path, '/home/ec2-user/.rbenv/'

エラー6: unicornコマンドないよエラー

エラー詳細

bundler: failed to load command: unicorn (/var/www/your_app/shared/bundle/ruby/2.6.0/bin/unicorn) ArgumentError: directory for stderr_path=/var/www/your_app/log/unicorn.stderr.log not writable

解決策

your_appディレクトリ下にlogディレクトリがなかったので作成、中にlogファイルを作成してchmod 555を実行すると通過
参考記事
https://qiita.com/naoki_mochizuki/items/657aca7531b8948d267b
https://qiita.com/aplifyjp/items/5d24394dbd03712a2f1f

デプロイできた

わけわからんくらいエラーが出たがなんとかデプロイできた。インフラ系は何回も構築繰り返すことで知識つくと思うので頑張りたい。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1