部署 有 Docker 集群部署 Rails 的项目经验的大胸弟么?

yingce · 发布于 2016年12月10日 · 最后由 yingce 回复于 2016年12月13日 · 1192 次阅读
19106

目前使用的是 capistrano/mina 配合搭建好的服务器来部署多台服务器; 但最近想使用Docker来部署下Rails ;

因为使用的docker swarm 所以可能会经常新增container;

最主要问题是 我现在已经开启的实例是使用capistrano这类工具直接部署么,还是删掉旧的实例然后部署新的实例来更新代码?

如果是使用capistrano怎么配合docker的集群功能全部部署,实例数量不详、IP不详。

共收到 15 条回复
19106

现在比较倾向的是继续使用cap/mina 因为需要remote console这个功能

96

下一步我们也会尝试做。目前有很多云服务提供了服务,可以借鉴下。

96

可以参考ruby china的docker工程。不用停掉原有工程,直接部署新容器

29339

用了docker就用不到capistrano了,bundle install直接装在docker里打包成镜像。assets:precompile和db:migrate都可以自己写ruby脚本检测文件变化然后远程执行。remote console不就是ssh -t root@host 'docker exec -ti container /bin/bash'

8744

正在尝试迁移到docker

2564

可以试试daocloud

19106

#3楼 @alex_l_zhang docker-compose么? 如果之前的不停掉怎么更新代码和重启?

19106

#4楼 @Trump 连上所有的实例?

9041

我们团队在推广一整套CI以及docker部署方案,CI我们用的是GoCD, 容器编排以及发布用的是rancher, rails容器的打包是shell来自动化做的!现在基本上不用capistrano/mina, 代码的发布和上线全走的CI

19106

#9楼 @huhongda 那你们做的部署过程也是先新建实例,启动成功后删掉就实例么? 有没有详细一点的文档或者配置这些, 谢谢。

8898

#9楼 @huhongda DroneCI 也不错 可以看看

6764

#9楼 @huhongda 我们也在做类似的事情, 可以交流下

19106

#12楼 @42thcoder 可以@他让他开个帖子详讲一下吧 哈哈

9041

#10楼 @yingce 你说的是容器的部署吧!我大概给你说说我们这边是怎么做的! 我们是走CI,步骤是

  1. clone项目到CI agent节点,然后根据项目中的文档生成对应的文档,然后上传至文档服务器(文档用的是apidocjs
  2. 做项目的语法检测以及代码复杂度检查 rubocop & rubycritic
  3. 将项目打包到docker镜像中,以项目名为docker容器名,这块打包是用shell来做的!最终会生成这样两个docker镜像:eg, ruby_china:1.0.1 && ruby_china:latest
  4. 调用RancherAPI来进行部署,Rancher是先停用已经在运行的容器,然后clone最新的项目docker镜像下来,然后再运行,这个是我们采用的方式,Rancher还有另外一种滚动部署的方式(即先运行再停用老的容器的方式)

你所问的4回答你了!

19106

#14楼 @huhongda 我抽空研究下, 非常感谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册