質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

4870閲覧

Capistranoのデプロイエラー

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2018/08/28 16:56

編集2018/08/29 15:06

こんにちは!RubyとRailsを独学で勉強しているものです。
AWSのEC2でRailsアプリを無事に公開できたのですが、Capistranoで自動デプロイ設定をすていると以下のようなエラーが出ました。
検索などで調べても分からなかったので、質問させて頂きます。
アプリはAWSのEC2の「/var/www/book_list/book_list-server」という場所にデプロイしております。
以下のエラーはどういう意味でしょうか?よろしくお願い致します。
※S3_ACCESS_KEYとS3_SECRET_KEYはAWSのS3の鍵です。

(Backtrace restricted to imported tasks) cap aborted! Don't know how to build task 'unicorn:restart' (see --tasks) Tasks: TOP => deploy:restart (See full trace by running task with --trace) The deploy has failed with an error: Don't know how to build task 'unicorn:restart' (see --tasks) ** DEPLOY FAILED ** Refer to log/capistrano.log for details. Here are the last 20 lines: DEBUG [9e3f9022] Running /usr/bin/env ls /var/www/book_list/releases/20180828135951/public/assets/.sprockets-manifest* as ec2-admin-user@ipアドレス DEBUG [9e3f9022] Command: cd /var/www/book_list/releases/20180828135951 && ( export S3_ACCESS_KEY="" S3_SECRET_KEY="" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" ; /usr/bin/env ls /var/www/book_list/releases/20180828135951/public/assets/.sprockets-manifest* ) DEBUG [ef0158ca] /var/www/book_list/releases/20180828135951/public/assets/.sprockets-manifest-5979c1e5c7fd9762fcdb7db115c8391e.json DEBUG [ef0158ca] Finished in 0.264 seconds with exit status 0 (successful). INFO [24606236] Running /usr/bin/env cp /var/www/book_list/releases/20180828135951/public/assets/.sprockets-manifest-5979c1e5c7fd9762fcdb7db115c8391e.json /var/www/book_list/releases/20180828135951/assets_manifest_backup as ec2-admin-user@ipアドレス DEBUG [24606236] Command: cd /var/www/book_list/releases/20180828135951 && ( export S3_ACCESS_KEY="" S3_SECRET_KEY="" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" ; /usr/bin/env cp /var/www/book_list/releases/20180828135951/public/assets/.sprockets-manifest-5979c1e5c7fd9762fcdb7db115c8391e.json /var/www/book_list/releases/20180828135951/assets_manifest_backup ) INFO [9d1d9225] Finished in 0.293 seconds with exit status 0 (successful). INFO [deploy:migrate] Run `rake db:migrate` DEBUG [2c574870] Running if test ! -d /var/www/book_list/releases/20180828135951; then echo "Directory does not exist '/var/www/book_list/releases/20180828135951'" 1>&2; false; fi as ec2-admin-user@ipアドレス DEBUG [2c574870] Command: if test ! -d /var/www/book_list/releases/20180828135951; then echo "Directory does not exist '/var/www/book_list/releases/20180828135951'" 1>&2; false; fi DEBUG [3b389d45] Finished in 0.285 seconds with exit status 0 (successful). INFO [033ff39d] Running $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate as ec2-admin-user@ipアドレス DEBUG [033ff39d] Command: cd /var/www/book_list/releases/20180828135951 && ( export S3_ACCESS_KEY="" S3_SECRET_KEY="" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" RAILS_ENV="production" ; $HOME/.rbenv/bin/rbenv exec bundle exec rake db:migrate ) INFO [7a8aa5dd] Finished in 3.425 seconds with exit status 0 (successful). INFO [e9f28ae0] Running /usr/bin/env ln -s /var/www/book_list/releases/20180828135951 /var/www/book_list/releases/current as ec2-admin-user@ipアドレス DEBUG [e9f28ae0] Command: ( export S3_ACCESS_KEY="" S3_SECRET_KEY="" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" ; /usr/bin/env ln -s /var/www/book_list/releases/20180828135951 /var/www/book_list/releases/current ) INFO [6fbb68c8] Finished in 0.236 seconds with exit status 0 (successful). INFO [a279d43f] Running /usr/bin/env mv /var/www/book_list/releases/current /var/www/book_list as ec2-admin-user@ipアドレス DEBUG [a279d43f] Command: ( export S3_ACCESS_KEY="" S3_SECRET_KEY="" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" ; /usr/bin/env mv /var/www/book_list/releases/current /var/www/book_list ) INFO [3d063709] Finished in 0.240 seconds with exit status 0 (successful).

bundle exec cap -Tの実行結果は以下になります。

cap bundler:clean # Remove unused gems installed by bundler cap bundler:install # Install the current Bundler environment cap bundler:map_bins # Maps all binaries to use `bundle exec` by default cap deploy # Deploy a new release cap deploy:check # Check required files and directories exist cap deploy:check:directories # Check shared and release directories exist cap deploy:check:linked_dirs # Check directories to be linked exist in shared cap deploy:check:linked_files # Check files to be linked exist in shared cap deploy:check:make_linked_dirs # Check directories of files to be linked exist in shared cap deploy:cleanup # Clean up old releases cap deploy:cleanup_assets # Cleanup expired assets cap deploy:cleanup_rollback # Remove and archive rolled-back release cap deploy:clobber_assets # Clobber assets cap deploy:compile_assets # Compile assets cap deploy:db_create # Create database cap deploy:finished # Finished cap deploy:finishing # Finish the deployment, clean up server(s) cap deploy:finishing_rollback # Finish the rollback, clean up server(s) cap deploy:log_revision # Log details of the deploy cap deploy:migrate # Runs rake db:migrate if migrations are set cap deploy:migrating # Runs rake db:migrate cap deploy:normalize_assets # Normalize asset timestamps cap deploy:published # Published cap deploy:publishing # Publish the release cap deploy:restart # Restart application cap deploy:revert_release # Revert to previous release timestamp cap deploy:reverted # Reverted cap deploy:reverting # Revert server(s) to previous release cap deploy:rollback # Rollback to previous release cap deploy:rollback_assets # Rollback assets cap deploy:seed # Run seed cap deploy:set_current_revision # Place a REVISION file with the current revision SHA in the current release path cap deploy:started # Started cap deploy:starting # Start a deployment, make sure server(s) ready cap deploy:symlink:linked_dirs # Symlink linked directories cap deploy:symlink:linked_files # Symlink linked files cap deploy:symlink:release # Symlink release to current cap deploy:symlink:shared # Symlink files and directories from shared to release cap deploy:updated # Updated cap deploy:updating # Update server(s) by setting up a new release cap doctor # Display a Capistrano troubleshooting report (all doctor: tasks) cap doctor:environment # Display Ruby environment details cap doctor:gems # Display Capistrano gem versions cap doctor:servers # Display the effective servers configuration cap doctor:variables # Display the values of all Capistrano variables cap install # Install Capistrano, cap install STAGES=staging,production

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takahashim

2018/08/29 09:36

bundle exec cap -T の実行結果も書いていただけますか?
退会済みユーザー

退会済みユーザー

2018/08/29 15:07

ご回答ありがとうございます!上に記載しました。よろしくお願い致します。
guest

回答1

0

ベストアンサー

Don't know how to build task 'unicorn:restart' (see --tasks)

というエラーメッセージは、unicorn:restartというタスクが定義されてないという意味です。確かにcapistranoのタスクをみる限りではなさそうですね。
おそらくdeploy:restartの中でunicorn:restartを呼んでいて、それがないのでエラーになっている、ということかと思われます。

解決策としては、

などがあります。

投稿2018/08/29 15:24

takahashim

総合スコア1877

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/29 15:28 編集

ご回答ありがとうございます! unicorn:restartのタスクはconfig/deploy.rbに以下のように記述しております。 書き方などが問題なのでしょうか? よろしくお願い致します。 namespace :deploy do desc 'Restart application' task :restart do invoke 'unicorn:restart' end desc 'Create database' task :db_create do on roles(:db) do |host| with rails_env: fetch(:rails_env) do within current_path do execute :bundle, :exec, :rake, 'db:create' end end end end desc 'Run seed' task :seed do on roles(:app) do with rails_env: fetch(:rails_env) do within current_path do execute :bundle, :exec, :rake, 'db:seed_fu' end end end end after :publishing, :restart after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do end end end
退会済みユーザー

退会済みユーザー

2018/08/29 15:31

また、lib/capistrano/tasks/unicorn.rbには以下のように記述しております。 namespace :unicorn do task :environment do set :unicorn_pid, "#{current_path}/tmp/pids/unicorn.pid" set :unicorn_config, "#{current_path}/config/unicorn.conf.rb" end # unicornをスタートさせるメソッド def start_unicorn within current_path do execute :bundle, :exec, :unicorn, "-c #{fetch(:unicorn_config)} -E #{fetch(:rails_env)} -D" end end # unicornを停止させるメソッド def stop_unicorn execute :kill, "-s QUIT $(< #{fetch(:unicorn_pid)})" end # unicornを再起動するメソッド def reload_unicorn execute :kill, "-s USR2 $(< #{fetch(:unicorn_pid)})" end # unicronを強制終了するメソッド def force_stop_unicorn execute :kill, "$(< #{fetch(:unicorn_pid)})" end # unicornをスタートさせるtask desc "Start unicorn server" task start: :environment do on roles(:app) do start_unicorn end end # unicornを停止させるtask desc "Stop unicorn server gracefully" task stop: :environment do on roles(:app) do stop_unicorn end end # 既にunicornが起動している場合再起動を、まだの場合起動を行うtask desc "Restart unicorn server gracefully" task restart: :environment do on roles(:app) do if test("[ -f #{fetch(:unicorn_pid)} ]") reload_unicorn else start_unicorn end end end # unicornを強制終了させるtask desc "Stop unicorn server immediately" task force_stop: :environment do on roles(:app) do force_stop_unicorn end end end
takahashim

2018/08/29 15:35

その場合は、おそらくlib/capistrano/tasks/unicorn.rbが読み込まれていないんだと思います。
takahashim

2018/08/29 15:38

Capfileに、 Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } などと書いてありますか? であれば、lib/capistrano/tasks/unicorn.rake にrenameしてみるとどうでしょうか。
退会済みユーザー

退会済みユーザー

2018/08/29 16:15

記載致しました。次は以下のようなエラーが出ました。 DEBUG [ce7e0084] Command: ( export S3_ACCESS_KEY="" S3_SECRET_KEY="" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.4" ; /usr/bin/env kill -s USR2 $(< /var/www/book_list/current/tmp/pids/unicorn.pid) ) DEBUG [687054e9] kill: DEBUG [687054e9] sending signal to 7050 failed DEBUG [687054e9] : DEBUG [687054e9] No such process
退会済みユーザー

退会済みユーザー

2018/08/29 16:17

デプロイされた場所が以下のようになりました。 [/var/www/book_list/current]$ ls 20180829160816 assets_manifest_backup Capfile config.ru Gemfile Guardfile log public README.md rubocop_todo.yml tmp app bin config db Gemfile.lock lib Procfile Rakefile REVISION spec vendor
退会済みユーザー

退会済みユーザー

2018/08/29 16:18

current配下に20180829160816というフォルダが作成され何か不自然のような気がします。
退会済みユーザー

退会済みユーザー

2018/08/29 16:28

もう一度、「bundle exec cap production deploy」を実行するとデプロイ->UnicornのRestartは正常に動きました!!! 原因は不明ですが解決致しました!!! アドバイスありがとうございました!!!!
takahashim

2018/08/29 16:57

おお、よかったですね。 初回に失敗したのは、pidファイルが正常に生成されてなかったとかかもしれません。 2,3度再起動を繰り返して、安定して再起動されるようであれば大丈夫かと思います。
退会済みユーザー

退会済みユーザー

2018/08/29 17:48

本当にありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問