刚刚部署后发现服务器疯狂报错,一键回滚,开始慢慢 debug。我用的是 kamal,让我生活变得更美好。因此写了这篇文章。
什么样的场景适合?
如果你之前 docker compose 部署就很满意了,那么大概率 kamal 也适合你。kamal 弥补了 docker compose 的一些不足,同时还保持了简单。可参考下面的对照表
| docker compose | kamal | |
|---|---|---|
| 配置文件 | docker-compose.yml | config/deploy.yml |
| Dockerfile | 支持 | 支持 |
| 构建镜像 | 当前机器 | 可以设置远程机器 |
| 源码版本 | 最新文件 | 最后一次 git commit 的文件 |
| 运行环境 | 生产环境服务器 | 本地自动 ssh 连上远程,支持多服务器,类似 ansible |
| 多个进程 | --scale 已被废止 | 很遗憾不支持 |
| 证书自动生成 | 无 | 有 |
| 平滑部署 | 无 | 有 |
| 一台机器部署多个网站 | 得用不同端口 | 可以同一个,因为带 proxy |
| 自动回滚 | 不行 | 可 |
| 部署多台机器 | 需要 docker swarm | 支持 |
Kamal 是 37signals 的开源产品。
官方网站:https://kamal-deploy.org