项目进入测试的阶段,要部署到staging环境进行监测。之前一直是使用的passanger服务器来跑的。最近换了puma,来说下总结吧。
具体的环境安装就不再阐述。
1. 主要就是对于puma的配置。
首先需要在gemfile.rb添加:
ruby
group :development do
gem 'capistrano', '~> 3.3.0'
gem 'capistrano-rvm'
gem 'capistrano-rails-console'
gem 'capistrano-bundler', '~> 1.1.2'
gem 'capistrano-rails', '~> 1.1'
gem 'capistrano3-puma', require: false
gem 'capistrano-sidekiq'
end
然后bundle 之后 cap install
.
会有如下文件生成
mkdir -p config/deploy
create config/deploy.rb
create config/deploy/staging.rb
create config/deploy/production.rb
mkdir -p lib/capistrano/tasks
create Capfile
Capified
先来看看Capfile
的文件内容:
# Load DSL and set up stages
require 'capistrano/setup'
# Include default deployment tasks
require 'capistrano/deploy'
# 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'
require 'capistrano/puma'
require 'capistrano/sidekiq'
# Load custom tasks from `lib/capistrano/tasks' if you have any defined
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
无非就是添加了几个require.(gemfile添加的capistrano相关gem可以require)
ok, 再加入如下deploy.rb
# config valid only for current version of Capistrano
lock '3.3.5'
set :application, 'appname'
set :repo_url, 'git@github.com:example/appname.git'
# Default branch is :master
# ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.cho