追伸
現在は手動によるデプロイをしています。
cd /var/www/projects/【アプリ名】/ && kill -QUIT `cat tmp/pids/unicorn.pid` && git fetch origin master && git reset --hard origin/master && bundle install --path vendor/bundle --without development test && bundle exec rake db:migrate RAILS_ENV=production && export AWS_ACCESS_KEY_ID=***************************** && export AWS_SECRET_ACCESS_KEY=************************* && bundle exec rake assets:precompile RAILS_ENV=production && bundle exec unicorn_rails -c /var/www/projects/【アプリ名】/config/unicorn.conf.rb -D -E production && ps -ef | grep unicorn | grep -v grep
かなり強引ですが...。
前提
参考資料 | 概要 |
---|---|
デプロイ | 初心者向け:AWS(EC2)にRailsのWebアプリをデプロイする方法 |
capistrano | (Capistrano編)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで |
インフラ構成 | ec2 / s3 / rds / nginx / unicorn |
昨日からcapistrano
を導入に挑戦していまして、現在は少し苦戦をしています。
お詳しい方いらっしゃったらご教授お願いできませんか。
下記のようなエラーが出ます。
capistrano
導入に苦戦をしております。
詳しい方、ご教授頂けると幸いです。
$ bundle exec cap production deploy
をすると下記のようなエラーが出ます。
(Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as @XX.XXX.XXX.XX: bundle exit status: 1 bundle stdout: Nothing written bundle stderr: master failed to start, check stderr log for details SSHKit::Command::Failed: bundle exit status: 1 bundle stdout: Nothing written bundle stderr: master failed to start, check stderr log for details /Users/【LOCAL_USERNAME】/Desktop/【APPNAME】/lib/capistrano/tasks/unicorn.rb:11:in `block in start_unicorn' /Users/【LOCAL_USERNAME】/Desktop/【APPNAME】/lib/capistrano/tasks/unicorn.rb:10:in `start_unicorn' /Users/【LOCAL_USERNAME】/Desktop/【APPNAME】/lib/capistrano/tasks/unicorn.rb:53:in `block (3 levels) in <top (required)>' Tasks: TOP => unicorn:restart (See full trace by running task with --trace) The deploy has failed with an error: Exception while executing as 【SERVER_USERNAME】@XX.XXX.XXX.XX: bundle exit status: 1 bundle stdout: Nothing written bundle stderr: master failed to start, check stderr log for details ** DEPLOY FAILED ** Refer to log/capistrano.log for details. Here are the last 20 lines: DEBUG [b143da1e] Command: if test ! -d /var/www/projects/【APPNAME】/releases/20180119110958; then echo "Directory does not exist '/var/www/projects/【APPNAME】/releases/20180119110958'" 1>&2; false; fi DEBUG [b143da1e] Finished in 0.274 seconds with exit status 0 (successful). INFO [a64a49a9] Running $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate as 【SERVER_USERNAME】@XX.XXX.XXX.XX DEBUG [a64a49a9] Command: cd /var/www/projects/【APPNAME】/releases/20180119110958 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" RAILS_ENV="production" ; $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate ) INFO [a64a49a9] Finished in 3.390 seconds with exit status 0 (successful). INFO [1659769c] Running /usr/bin/env ln -s /var/www/projects/【APPNAME】/releases/20180119110958 /var/www/projects/【APPNAME】/releases/current as 【SERVER_USERNAME】@XX.XXX.XXX.XX DEBUG [1659769c] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" ; /usr/bin/env ln -s /var/www/projects/【APPNAME】/releases/20180119110958 /var/www/projects/【APPNAME】/releases/current ) INFO [1659769c] Finished in 0.247 seconds with exit status 0 (successful). INFO [d2c6f9fc] Running /usr/bin/env mv /var/www/projects/【APPNAME】/releases/current /var/www/projects/【APPNAME】 as 【SERVER_USERNAME】@XX.XXX.XXX.XX DEBUG [d2c6f9fc] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" ; /usr/bin/env mv /var/www/projects/【APPNAME】/releases/current /var/www/projects/【APPNAME】 ) INFO [d2c6f9fc] Finished in 0.291 seconds with exit status 0 (successful). DEBUG [30f26ed1] Running [ -f /var/www/projects/【APPNAME】/current/tmp/pids/unicorn.pid ] as 【SERVER_USERNAME】@XX.XXX.XXX.XX DEBUG [30f26ed1] Command: [ -f /var/www/projects/【APPNAME】/current/tmp/pids/unicorn.pid ] DEBUG [30f26ed1] Finished in 0.266 seconds with exit status 1 (failed). DEBUG [52b38bff] Running if test ! -d /var/www/projects/【APPNAME】/current; then echo "Directory does not exist '/var/www/projects/【APPNAME】/current'" 1>&2; false; fi as 【SERVER_USERNAME】@XX.XXX.XXX.XX DEBUG [52b38bff] Command: if test ! -d /var/www/projects/【APPNAME】/current; then echo "Directory does not exist '/var/www/projects/【APPNAME】/current'" 1>&2; false; fi DEBUG [52b38bff] Finished in 0.261 seconds with exit status 0 (successful). INFO [5bab6ec5] Running $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/projects/【APPNAME】/current/config/unicorn/production.rb -E production -D as 【SERVER_USERNAME】@XX.XXX.XXX.XX DEBUG [5bab6ec5] Command: cd /var/www/projects/【APPNAME】/current && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.4.0" ; $HOME/.rbenv/bin/rbenv exec bundle exec unicorn -c /var/www/projects/【APPNAME】/current/config/unicorn/production.rb -E production -D ) DEBUG [5bab6ec5] master failed to start, check stderr log for details
気がかり
unicornとnginxの設定の件
# 資料では【APPNAME】/currentが付与されるが、現在は付与せず。 $app_dir = "/var/www/projects/【APPNAME】"
IPアドレスの件
# IPアドレスをドメインにしたほうがいいかもしれない。 server 'XX.XXX.XX.XXX', user: '【USERNAME】', roles: %w{app db web} # my-key.pemの指定が間違っているのかな。 set :ssh_options, keys: '~/.ssh/my-key.pem'
まとめ
資料を通して2点ほど気がかりな部分もありますが、それがエラーに関係あるのか、
はたまた別の理由でエラーが出ているのか、インフラの専門家の方、
capistrano
を導入したことがある方、ご教授頂けると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。