Skip to content

Instantly share code, notes, and snippets.

@328
Last active September 24, 2016 19:10
Show Gist options
  • Save 328/f0be76e0b737ebbc41ab880105b6ed05 to your computer and use it in GitHub Desktop.
Save 328/f0be76e0b737ebbc41ab880105b6ed05 to your computer and use it in GitHub Desktop.
Capistrano3のプラクティス
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rails/console'
require 'capistrano/rails'
require 'capistrano/bundler'
require 'capistrano/rbenv'
require 'capistrano/rails/assets'
require 'capistrano3/unicorn'
require 'capistrano3/ridgepole'
require 'capistrano/delayed-job'
# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
lock '3.6.1'
set :application, 'hogehoge'
set :repo_url, 'git@gh-328-hogehoge:328/hogehoge.git'
set :branch, 'master'
set :deploy_to, "/home/rails/hogehoge"
set :scm, :git
set :format, :pretty
set :log_level, :debug
set :keep_releases, 3
set :pty, true
set :rbenv_type, :user
set :rbenv_ruby, '2.2.4'
set :rbenv_path, '/usr/local/rbenv'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w{rake gem bundle ruby rails}
set :rbenv_roles, :all
set :linked_files, %w{config/database.yml config/secrets.yml config/constants.yml}
set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets bundle public/system public/assets}
set :assets_dependencies, %w(app/assets lib/assets vendor/assets Gemfile.lock config/routes.rb)
set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid"
set :unicorn_config_path, "#{release_path}/config/unicorn.rb"
set :ridgepole_roles, :db
set :ridgepole_schema_file, File.join(current_path, "schemas", "Schemafile")
set :ridgepole_config_file, File.join(current_path, "config", "database.yml")
set :ridgepole_env, :production
after 'deploy:publishing', 'deploy:restart'
after 'deploy:publishing', 'delayed_job:restart'
after 'deploy:publishing', 'ridgepole:ridgepole_apply'
namespace :deploy do
task :restart do
invoke 'unicorn:restart'
end
end
namespace :ridgepole do
task :ridgepole_apply do
invoke 'ridgepole:apply'
end
end
namespace :delayed_job do
task :restart do
invoke 'delayed_job:restart'
end
end
set :rails_env, "production"
set :unicorn_rack_env, "production"
set :stage, :production
set :bundle_path, -> { shared_path.join('./vendor/bundle') }
server 'localhost', user: 'rails', roles: %{web}
server 'localhost', user: 'rails', roles: %{app}
server 'localhost', user: 'rails', roles: %{db}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment