菜单导航

探索发现
kamal-随时随地部署 Web 应用程序
探索发现

kamal-随时随地部署 Web 应用程序

NoiseNoise
2024-10-29

介绍

kamal类似于Fly.io,可提供零停机时间部署、滚动重启、资产桥接、远程构建、附件服务管理,以及使用 Docker 在生产环境中部署和管理 Web 应用程序所需的一切,不同的是kamal你需要有 Ruby 环境,可以是本地机器也可以是云服务器。然后kamal会自动构建及部署运行

官网:https://kamal-deploy.org

以下来自官方指南

安装

如果您有可用的 Ruby 环境,则可以使用以下方法全局安装 Kamal:

gem install kamal

否则,您可以通过别名运行 dockerized 版本(将此别名添加到您的 ,或类似内容以简化重用)。~/.bashrc``~/.zshrc

在 macOS 上,使用:

alias kamal='docker run -it --rm -v "${PWD}:/workdir" -v "/run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock" -e SSH_AUTH_SOCK="/run/host-services/ssh-auth.sock" -v /var/run/docker.sock:/var/run/docker.sock ghcr.io/basecamp/kamal:latest'

在 Linux 上,使用:

alias kamal='docker run -it --rm -v "${PWD}:/workdir" -v "${SSH_AUTH_SOCK}:/ssh-agent" -v /var/run/docker.sock:/var/run/docker.sock -e "SSH_AUTH_SOCK=/ssh-agent" ghcr.io/basecamp/kamal:latest'

然后,在您的 app 目录中,运行 .现在编辑新文件 .它可能看起来很简单:kamal init``config/deploy.yml

service: hey
image: 37s/hey
servers:
  - 192.168.0.1
  - 192.168.0.2
registry:
  username: registry-user-name
  password:
    - KAMAL_REGISTRY_PASSWORD
builder:
  arch: amd64
env:
  secret:
    - RAILS_MASTER_KEY

在您的环境中设置并编辑您的文件以读取它(以及使用 Rails 应用程序进行生产)。KAMAL_REGISTRY_PASSWORD``.kamal/secrets``RAILS_MASTER_KEY

KAMAL_REGISTRY_PASSWORD=$KAMAL_REGISTRY_PASSWORD
RAILS_MASTER_KEY=$(cat config/master.key)

现在,您已准备好部署到服务器:

kamal setup

这将:

  1. 通过 SSH 连接到服务器(默认使用 root,通过 SSH 密钥进行身份验证)。
  2. 在任何可能缺少 Docker 的服务器上安装 Docker(使用 get.docker.com):为此需要通过 SSH 进行 root 访问。
  3. 在本地和远程登录注册表。
  4. 使用应用程序根目录中的标准 Dockerfile 构建映像。
  5. 将映像推送到注册表。
  6. 将镜像从 registry 拉取到服务器上。
  7. 确保 kamal-proxy 正在运行并接受端口 80 和 443 上的流量。
  8. 使用与当前 Git 版本哈希匹配的应用程序版本启动新容器。
  9. 告诉 kamal-proxy 在新容器响应 to 后将流量路由到新容器。200 OK``GET /up
  10. 停止运行以前版本应用的旧容器。
  11. 删除未使用的映像和已停止的容器,以确保服务器不会填满。

现在,所有服务器都在端口 80 上为应用程序提供服务。如果您只运行单个服务器,则已准备就绪。如果您运行多个服务器,则需要在它们前面放置一个负载均衡器。对于后续部署,或者如果您的服务器已经安装了 Docker,您可以只运行 .kamal deploy

其它说明请前往官方查看

版权声明

本文为「Noise」原创内容或编译整理;除特别说明外,文中图片并非个人手绘,可能来源于网络、AI 生成、截图等,后期使用 PhotoMator / Procreate 进行处理,仅用于学习与交流。如涉及版权或来源标注不全,请联系处理。未经授权,禁止用于商业用途,禁止抹除水印。转载请注明出处与链接并保留本声明。

...

评论 (0)

评论功能加载中...
Noise

Noise

执迷不悟

推荐阅读

Memory-不负时光摄影相册程序
探索发现

Memory-不负时光摄影相册程序

Noise | 2025-08-10

简介

一个瀑布流摄影图库,也是专为摄影师做的独立网络相册程序,它是基于[Moment](https://github.com/Robert-Stackflow/M

139
AI Movie Clip - 基于python的智能视频剪辑系统
探索发现

AI Movie Clip - 基于python的智能视频剪辑系统

Noise | 2025-08-10

一个基于人工智能的自动视频剪辑系统,能够自动分析视频内容并根据用户需求生成编辑后的视频。该项目为视频剪辑mcp提供了一个新的研究方向,它使用python脚本来分

75
CrossPaste-跨设备的粘贴神器,在任意设备间复制粘贴
探索发现

CrossPaste-跨设备的粘贴神器,在任意设备间复制粘贴

Noise | 2025-07-26

此前已介绍过多个粘贴软件了,如PasteBar等,它们各有所长,但有没有适合不同设备之间使用的呢,有的,CrossPaste就很好满足了跨设备同时复制粘贴的问题

特性

  • 🔄 实时共享:设备之间实时共享粘贴板内容,操作自然流畅。
  • 🖥️ 跨平台统一体验:Mac、Win
94

标签