💡
原文中文,约2200字,阅读约需6分钟。
📝
内容提要
Kamal 是一款基于 Docker 的 Rails 应用部署工具。本文分享了在生产环境中配置 Kamal 的经验,包括选择部署服务器、管理 Secrets、触发 CI/CD 部署、VPC 设置及 Docker Registry 位置等。建议使用云平台的托管数据库以简化管理。对于小型应用,Fly 部署更便捷,而 Kamal 更适合国内应用。
🎯
关键要点
- Kamal 是一款基于 Docker 的 Rails 应用部署工具,适用于 Docker 化的应用。
- Kamal 的使用率在 Rails 社区逐渐上升,面临网络问题和 Secrets 管理等挑战。
- 建议配置单独的 deploy server,放在境外以解决网络问题和 Secrets 管理的安全隐患。
- CI/CD 通过 ssh 连接 deploy server,使用 ForceCommand 限制 ssh key 的权限,确保安全。
- VPC 设置可以将 deploy server 和 app server 置于同一局域网,使用内网 IP 部署。
- Docker Registry 应靠近部署区域,以减少网络问题,建议自建 Docker Registry 代理。
- 建议使用云平台的托管数据库,以简化管理和实现备份、升级等操作。
- 对于小型应用,Fly 部署更便捷,而 Kamal 更适合需要在国内部署的应用。
❓
延伸问答
Kamal 是什么?
Kamal 是一款基于 Docker 的 Rails 应用部署工具,适用于 Docker 化的应用。
为什么要使用单独的 deploy server?
使用单独的 deploy server 可以解决网络问题和提高 Secrets 管理的安全性。
如何配置 CI/CD 触发部署?
CI/CD 通过 ssh 连接 deploy server,并使用 ForceCommand 限制 ssh key 的权限来触发部署。
Docker Registry 应该如何设置?
Docker Registry 应靠近部署区域,以减少网络问题,建议自建 Docker Registry 代理。
使用云平台的托管数据库有什么好处?
使用云平台的托管数据库可以简化管理,便于实现备份和升级等操作。
Kamal 适合什么类型的应用?
Kamal 更适合需要在国内部署的应用,而对于小型应用,Fly 部署更便捷。
➡️