Skip to content

tye/capistrano3-unicorn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Capistrano3 Unicorn

This is a capistrano v3 plugin that integrates Unicorn tasks into capistrano deployment scripts; it was heavily inspired by sosedoff/capistrano-unicorn but written from scratch to use the capistrano 3 syntax.

Gotchas

  • The unicorn:start task invokes unicorn as bundle exec unicorn.

  • When running tasks not during a full deployment, you may need to run the rvm:hook:

    cap production rvm:hook unicorn:start

Conventions

You can override the defaults by set :unicorn_example, value in the config/deploy.rb or config/deploy/ENVIRONMENT.rb capistrano deployment files

  • :unicorn_pid

    Assumes your pid file will be located in the application's shared path .../shared/pids/unicorn.pid so that it survives zero-downtime re-deployments

  • :unicorn_config_path

    Assumes that your Unicorn configuration will be located in config/unicorn/RAILS_ENV.rb

  • :unicorn_restart_sleep_time

    When performing zero-downtime deployment via the unicorn:restart task, send the USR2 signal, sleep for this many seconds (defaults to 3), then send the QUIT signal

  • :unicorn_roles

    Roles to run unicorn commands on. Defaults to :app

  • :unicorn_options

    Set any additional options to be passed to unicorn on startup. Defaults to none

  • :unicorn_rack_env

    Set the RACK_ENV. Defaults to deployment unless the RAILS_ENV is development. Valid options are "development", "deployment", or "none". See the RACK ENVIRONMENT section of the unicorn documentation for more information.

Setup

Add the library to your Gemfile:

group :development do
  gem 'capistrano3-unicorn'
end

Add the library to your Capfile:

require 'capistrano3/unicorn'

Invoke Unicorn from your config/deploy.rb or config/deploy/ENVIRONMENT.rb:

If preload_app:true use:

after 'deploy:publishing', 'deploy:restart'
namespace :deploy do
  task :restart do
    invoke 'unicorn:restart'
  end
end

Otherwise use:

after 'deploy:publishing', 'deploy:restart'
namespace :deploy do
  task :restart do
    invoke 'unicorn:reload'
  end
end

Note that presently you must put the invoke outside any on block since the task handles this for you; otherwise you will get an undefined method 'verbosity' error.

Note that the after hook is needed from Capistrano 3.1 forward.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%