kamal类似于Fly.io,可提供零停机时间部署、滚动重启、资产桥接、远程构建、附件服务管理,以及使用 Docker 在生产环境中部署和管理 Web 应用程序所需的一切,不同的是kamal你需要有 Ruby 环境,可以是本地机器也可以是云服务器。然后kamal会自动构建及部署运行
以下来自官方指南
安装
如果您有可用的 Ruby 环境,则可以使用以下方法全局安装 Kamal:
否则,您可以通过别名运行 dockerized 版本(将此别名添加到您的 ,或类似内容以简化重用)。~/.bashrc``~/.zshrc
在 macOS 上,使用:
在 Linux 上,使用:
然后,在您的 app 目录中,运行 .现在编辑新文件 .它可能看起来很简单:kamal init``config/deploy.yml
在您的环境中设置并编辑您的文件以读取它(以及使用 Rails 应用程序进行生产)。KAMAL_REGISTRY_PASSWORD``.kamal/secrets``RAILS_MASTER_KEY
现在,您已准备好部署到服务器:
这将:
- 通过 SSH 连接到服务器(默认使用 root,通过 SSH 密钥进行身份验证)。
- 在任何可能缺少 Docker 的服务器上安装 Docker(使用 get.docker.com):为此需要通过 SSH 进行 root 访问。
- 在本地和远程登录注册表。
- 使用应用程序根目录中的标准 Dockerfile 构建映像。
- 将映像推送到注册表。
- 将镜像从 registry 拉取到服务器上。
- 确保 kamal-proxy 正在运行并接受端口 80 和 443 上的流量。
- 使用与当前 Git 版本哈希匹配的应用程序版本启动新容器。
- 告诉 kamal-proxy 在新容器响应 to 后将流量路由到新容器。
200 OK``GET /up
- 停止运行以前版本应用的旧容器。
- 删除未使用的映像和已停止的容器,以确保服务器不会填满。
现在,所有服务器都在端口 80 上为应用程序提供服务。如果您只运行单个服务器,则已准备就绪。如果您运行多个服务器,则需要在它们前面放置一个负载均衡器。对于后续部署,或者如果您的服务器已经安装了 Docker,您可以只运行 .kamal deploy
其它说明请前往官方查看
- 打赏
- 分享
分享到...
请选择打赏方式
- 微信
- 支付宝
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容