Kamal 配置
配置是从 config/deploy.yml
中读取的
目标位置
在运行命令时,你可以使用 -d
标志指定目标位置,例如 kamal deploy -d staging
在这种情况下,配置还将从 config/deploy.staging.yml
中读取,并与基础配置合并。
扩展
Kamal 不会接受配置文件中未识别的关键项。
但是,你可能希望使用 YAML 锚定和别名来声明一个配置块,以避免重复。
你可以使用 x-
为配置部分添加前缀,以指示这是一个扩展。Kamal 将忽略扩展,并且不会引发错误。
服务名称
这是一个必填值。它用作容器名称的前缀。
service: myapp
Docker 镜像名称
该镜像将被推送到已配置的注册表中。
image: my-image
标签
添加到容器中的附加标签
labels:
my-label: my-value
附加到容器中的附加卷
volumes:
- /path/on/host:/path/in/container:ro
注册表
Docker 注册表配置,请参阅 Docker 注册表
registry:
...
服务器
要部署到的服务器,可选指定自定义角色,请参阅 服务器
servers:
...
环境变量
请参阅 环境变量
env:
...
资产桥接
用于跨部署的资产桥接,默认为 nil
如果 CSS 或 JS 文件发生更改,我们可能会在新的容器上收到对旧版本的请求,反之亦然。
为避免 404s,我们可以指定资产路径。Kamal 将用包含两组文件映射卷替换容器中的该路径。这需要在内容更改时更改文件名(例如在名称中包括内容的哈希)。
要配置此项,请设置资产路径
asset_path: /path/to/assets
钩子路径,默认为 .kamal/hooks
有关更多详细信息,请参阅 钩子
hooks_path: /user_home/kamal/hooks
要求指定目标位置
部署是否需要指定目标位置,默认为 false
require_destination: true
主要角色
这默认为 web
,但如果你没有 web 角色,你可以更改此
primary_role: workers
允许空角色
是否允许没有任何服务器的角色。默认为 false
。
allow_empty_roles: false
停止等待时间
在终止容器之前,我们等待容器停止的时间,默认为 30 秒
stop_wait_time: 60
保留容器
我们保留的旧容器和镜像数量,默认为 5
retain_containers: 3
最小版本
部署此配置所需的 Kamal 最低版本,默认为 nil
minimum_version: 1.3.0
准备延迟
容器启动后等待容器启动的时间,默认为 7 秒。这仅适用于未指定健康检查的容器
readiness_delay: 4
运行目录
在主机上存储 kamal 运行时文件的目录,默认为 .kamal
run_directory: /etc/kamal
SSH 选项
请参阅 SSH
ssh:
...
构建器选项
请参阅 构建器
builder:
...
附件
在 Docker 中运行的其他服务,请参阅 配件
accessories:
...
Traefik
Traefik 代理用于零停机时间部署,请参阅 Traefik
traefik:
...
SSHKit
请参阅 SSHKit
sshkit:
...
启动选项
请参阅 启动
boot:
...
健康检查
配置健康检查命令、间隔和超时,请参阅 健康检查
healthcheck:
...
日志记录
Docker 日志记录配置,请参阅 日志记录
logging:
...