目前的应用主要是 rails/nodejs apps,通过 docker-compose 控制各种服务,部署都是 ssh 进入 host -> 用 makefile 执行 upgrade 脚本(删掉旧的 containers/images,重新 build) -> makefile 执行编译 assets:rails assets:precompile -> 运行 containers
简单了解了下如下几个工具:
我的需求是:
类似 capistrano 那样执行一行命令就能自动从 git pull 部署(对于 docker-compose 来说 rebuild 一次就好)。
或者
有 Web UI,点下更新就可以 rebuild。
感觉有点杀鸡用牛刀,对于我这种需求是不是自己写个脚本便好?
1
precisi0nux Dec 17, 2016 via iPhone 写脚本,如果要图形化界面的话在放 Jenkins 上。
|
2
NathanInMac Dec 17, 2016 取决于你和你的团队的需求了,你们没有 CI 的需求吗?部署一般放在测试之后对吧,所以大部分的 CI 工具都有部署的功能。 build docker image 也可以放在 CI 跑。
然后我有点没明白你的流程,为什么要重新跑一遍 assets precompile ,是因为多个 rails containers share 一个 volume 放静态文件吗?如果是这样的话,也可以在 CI 上跑了 scp 过去吧,尽量减少服务器上干的事儿。 最后是删掉旧的 containers/images 这个事情,其实 docker-compose 会帮你处理的,除非你改动了 image 的名字,不然是不会用冗余的 container 和 images 的。 可以试试 travis ci , circle ci ,或者自建 jenkins ,然后在 test 过了之后自动 ssh 到服务器跑 docker-compose |
3
cherrot Dec 17, 2016 via Android 我觉得需求很简单直接部署一个 CI 就够了。我们是 Jenkins , git push 以后自动构建 image ,在发布机上 stop , rm , volume rm , rmi , up 就行了。
|