使用Capistrano3.5.0部署项目

(1)安装capstrano gem install capstrano# --version默认版本也行
(2)capfile .可以看到怎么初始化capistrano文档的命令,以及官方文档网址,大的版本信息
(3)cap install 这一步如果你是单独新建了一个文件夹会获得如下结构。
.
├── Capfile
├── config
│   ├── deploy
│   │   ├── production.rb
│   │   └── staging.rb
│   └── deploy.rb
├── lib
│   └── capistrano
│   └── tasks
└── log
└── capistrano.log
如果你在你的ruby项目里面他会自动把上面的目录结构融合在相应的文件夹下。
(4)修改stage 如果有需要默认就是生成的production 以及staging,采用默认可以跳过这步,直接去设置deploy.rb这个文件里面的set,放开屏蔽加上自己的就可以了
修改stage set :stage_dir, 'config/deploy'
set :stages, ["iqiyi_bj_production","iqiyi_sh_production","youku_production",
"tencent_production"] 可以使用fetch(:stage) 获得相应的stage参数
(5)设置deploy.rb文件
set :application, 'xxxx'
set :repo_url, 'ssh://git@1xxxx'
set :branch, "master"
set :deploy_to, '/home/xx/xxx'
set :scm, :git
set :pty, true
set :keep_releases, 5
根据自己开发的不同增加设置
(6)测试部署
a、没有走第4步设置个性staging的可以直接cap production deploy
b、走第4步的 把production换成相应的 cap xxx_production deploy
(7)写task 版本不同语法格式还是有区别的,按照官方文档好点
3.x版本的
after :published,:start
task :start do
on roles(:all)do |host|
execute <<-EOF
cd "#{current_path}"
cd ..
BSE="/home/bidder/xxx/cabbage"
if [ -d $BSE ]
then echo "$BSE is exist"
else mv current cabbage
echo "success"
echo "$BSE"
fi
EOF
end
end
2.x版本的
task :start, roles: :app do
run "rm -rf /app/current/data"
end


服务器端产生的文件说明
current 是指当前版本, link 到 release 下的指定版本目录(默认为最新的 releases)
releases 每次部署都会产成一个目录存放项目源码, 目录个数由 :keep_releases 变量来控制
repo 项目的 .git 目录
shared 是项目中共享的内容, 不会随部署而改变
rails项目的 一些列子
https://segmentfault.com/a/1190000002490286
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值