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

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

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

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

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Capistrano

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

Q&A

解決済

1回答

3854閲覧

Rails5からさくらのVPSへcapistranoを使ったデプロイができません。

s.k

総合スコア423

Ruby on Rails

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

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Capistrano

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

0グッド

1クリップ

投稿2017/01/20 03:51

###前提・実現したいこと
Rails5からさくらのVPSへcapistranoを使ってデプロイをしたいです。

###発生している問題・エラーメッセージ

bundle exec cap staging deployコマンドを実行

(Backtrace restricted to imported tasks) cap aborted! Don't know how to build task 'deploy:new_release_path' (see --tasks) /home/ubuntu/workspace/Capfile:2:in `<top (required)>' (See full trace by running task with --trace)

Capfile:2に問題があるということで記述の順番が間違っているのかな?
と、思い修正しました。

修正前
【Capfile】

require "capistrano/setup" require "capistrano/deploy" require "capistrano/scm/git" install_plugin Capistrano::SCM::Git★ Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }★

修正後
【Capfile】

install_plugin Capistrano::SCM::Git★ Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }★ require "capistrano/setup" require "capistrano/deploy" require "capistrano/scm/git"

bundle exec cap staging deployコマンドを実行

(Backtrace restricted to imported tasks) cap aborted! NameError: uninitialized constant Capistrano::SCM /home/ubuntu/workspace/Capfile:1:in `<top (required)>' (See full trace by running task with --trace)

未定義?のエラーが発生しました。
ここから、上記コードの順番を入れ替えて何通りか試してみましたが解決できません((+_+))

###該当のソースコード

【Capfile】

require "capistrano/setup" require "capistrano/deploy" require "capistrano/scm/git" install_plugin Capistrano::SCM::Git Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } require 'capistrano/rbenv' require 'capistrano/rails' require 'capistrano3/unicorn' set :linked_files, %w{config/secrets.yml}

【deploy.rb】

lock '3.7.1' set :application, 'sample' set :repo_url, 'git@github.com:noppefoxwolf/sample-server.git' set :deploy_to, '/home/deploy/staging' set :pty, true set :scm, :git set :rbenv_ruby, '2.3.1' set :rbenv_type, :system after 'deploy:publishing', 'deploy:restart' namespace :deploy do desc 'Restart application' task :restart do invoke 'unicorn:restart' end end

【Gemfile】

group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug' gem 'sqlite3' gem "capistrano" gem 'capistrano-rails' gem "capistrano-rbenv" gem 'capistrano-bundler' gem 'capistrano3-unicorn' end group :development do # Access an IRB console on exception pages or by using <%= console %> in views gem 'web-console', '~> 2.0' gem 'pg', '0.17.1' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring gem 'spring' gem 'rails_12factor', '0.0.2' end group :production, :staging do gem 'unicorn' end

###補足情報(言語/FW/ツール等のバージョンなど)
ほぼこちらの記事通り進めました

teratail内でもあまりdeployの部分の質問がなかったことも含め質問させていただきました。

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

①Capfileの記述の順番を変更
②deploy.rb内のset :scm, :gitを削除

で、解決できました。

【Capfile】

# Load DSL and set up stages require "capistrano/setup" # Include default deployment tasks require "capistrano/deploy"★deployを上から二番目に★ # Load the SCM plugin appropriate to your project: # # require "capistrano/scm/hg" # install_plugin Capistrano::SCM::Hg # or # require "capistrano/scm/svn" # install_plugin Capistrano::SCM::Svn # or require "capistrano/scm/git" install_plugin Capistrano::SCM::Git require "capistrano/setup" require "capistrano/deploy" require 'capistrano/rbenv' require 'capistrano/rails' require 'capistrano3/unicorn' set :linked_files, %w{config/secrets.yml} # Load custom tasks from `lib/capistrano/tasks` if you have any defined Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } # Include tasks from other gems included in your Gemfile # # For documentation on these, see for example: # # https://github.com/capistrano/rvm # https://github.com/capistrano/rbenv # https://github.com/capistrano/chruby # https://github.com/capistrano/bundler # https://github.com/capistrano/rails # https://github.com/capistrano/passenger # # require "capistrano/rvm" # require "capistrano/rbenv" # require "capistrano/chruby" # require "capistrano/bundler" # require "capistrano/rails/assets" # require "capistrano/rails/migrations" # require "capistrano/passenger" # Load custom tasks from `lib/capistrano/tasks` if you have any defined Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }

【deploy.rb】

lock '3.7.1' set :application, 'third_app' set :repo_url, 'zzzzzzzzzzzzzzzzzzzzzzzzzzz' set :deploy_to, '/home/deploy/staging' set :pty, true set :rbenv_ruby, '2.3.1' set :scm, :git★削除★ set :rbenv_type, :system set :ssh_options, :port => "xxxxxxxxxxx"

ありがとうございました。

投稿2017/01/20 07:12

編集2017/01/20 07:25
s.k

総合スコア423

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問