Skip to content

yuc-zhu/capistrano3-unicorn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 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 tmp/pids/unicorn.pid which is symlinked by :linked_dirs to survive across deployments

    NOTE: THIS PATH WAS CHANGED AS OF v0.1.0

  • :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.

  • :unicorn_bundle_gemfile

    Sets the BUNDLE_GEMFILE so that unicorn will point at the new Gemfile after unicorn:restart. Defaults to current/Gemfile.

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%