一:一个新项目部署服务器,先写配置
1.创建config/deploy/sandbox文件,并写配置内容
capistrano的API,有方法介绍
https://github.com/capistrano/capistrano
bundle exec cap install
config/deploy/production.rb 配置如下
role :app, %w{production_name}
role :web, %w{production_name}
role :db, %w{production_name}
role :production_cron, %w{production_name}
set :branch, :master
set :rails_env, :production
set :deploy_to, "/var/www/#{fetch(:application)}/#{fetch(:stage)}"
set :puma_threads, [4, 16]
set :puma_workers, 1
set :sidekiq_processes, 1
config/deploy.rb 配置如下:
# config valid for current version and patch releases of Capistrano
lock "~> 3.11.0"
set :application, "project_name"
set :repo_url, "git@xxx:rails/project_name.git"
set :user, 'deployer'
set :rvm_ruby_version, '2.3.1'
set :log_level, :info
set :linked_files, %w{config/secrets.yml}
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp', 'vendor/bundle', 'public/system')
set :sidekiq_role, :sidekiq_processer
namespace :puma do
desc 'Create Directories for Puma Pids and Socket'
task :make_dirs do
on roles(:app) do
execute "mkdir #{shared_path}/tmp/sockets -p"
execute "mkdir #{shared_path}/tmp/pids -p"
end
end
before :start, :make_dirs
end
capfile 文件,(复制就行)
# Load DSL and set up stages
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/rails"
require "capistrano/rvm"
require "capistrano/bundler"
require "capistran