角色

角色用于在部署中配置不同类型的服务器。最常见的用途是运行 Web 服务器和作业服务器。

Kamal 预计会存在一个 web 角色,除非你在根配置中设置不同的 primary_role

角色配置

角色在服务器键下指定

servers:

简单角色配置

如果不需要角色的自定义配置,则它可以是主机列表。

你可以为自定义环境变量在主机上设置标签(请参阅 环境变量

  web:
    - 172.1.0.1
    - 172.1.0.2: experiment1
    - 172.1.0.2: [ experiment1, experiment2 ]

自定义角色配置

当存在其他要设置的选项时,主机列表将位于 hosts 键下

默认情况下,只有主角色才使用 Traefik,但你可以设置 traefik 进行更改。

你还可以设置要在容器中运行的自定义 cmd,并覆盖根配置中的其他设置。

  workers:
    hosts:
      - 172.1.0.3
      - 172.1.0.4: experiment1
    traefik: true
    cmd: "bin/jobs"
    options:
      memory: 2g
      cpus: 4
    healthcheck:
      ...
    logging:
      ...
    labels:
      my-label: workers
    env:
      ...
    asset_path: /public