capistrano 太好用了。 神器。
目前的命令: $ bundle exec cap deploy ( 需要 ruby 1.9.3 + 环境)
部署脚本: config/deploy.rb
(注意: 我把关键点 按照注释的形式,写在了下面)
# -*- encoding : utf-8 -*- require 'capistrano-rbenv' load 'deploy/assets' SSH_USER = '?????' ssh_options[:port] = ????? set :rake, "bundle exec rake" set :application, "touring" set :repository, "./dist" # 我只部署这个文件夹。 set :scm, :none set :deploy_via, :copy # 使用传统的上传代码的形式。 set :copy_exclude, ['tmp', 'log'] # 忽略一些东东 server = "h5.???.com.cn" role :web, server role :app, server role :db, server, :primary => true role :db, server set :deploy_to, "/opt/app/tuling_h5" set :copy_exclude, [".git", "node_modules", "src"] # 不要使用不必要的文件. default_run_options[:pty] = true # change to your username set :user, SSH_USER namespace :deploy do task :restart, :roles => :app, :except => { :no_release => true } do run "nginx -s reload" end end
我们之前部署vuejs的方式: 纯手动: 好麻烦。
1. $ npm run build # 生成 dist 目录
2. $ zip h5.zip -r dist 把dist 目录打包成 h5.zip
3. $ scp -P <ssh port> h5.zip [email protected]:/opt/app/h5 # 把h5.zip copy 到对应目录下
4. $ ssh yoursitte.com # ssh 登陆到服务器上,具体命令略
5. $ cd /opt/app/h5
6. $ unzip h5.zip
7. $ mv current archive.20160803001 # 把当前的部署版本重命名
8. $ mv dist current # 把最新的文件夹,命名成 current.
9. $ nginx -s reload # 重启 nginx