如何为使用Kamal启动的Ruby on Rails服务定义container_names
为Kamal启动的Rails服务(app/sidekiq)自定义容器名称
Kamal基于Docker Compose运行服务,默认会自动生成容器名称(结合服务名、主机标识、版本等组合)。如果要自定义容器名称,只需在项目的config/deploy.yml配置文件中,为对应服务添加container_name字段即可。
配置示例
- 为app服务指定容器名称:
# config/deploy.yml service: my_rails_app image: your-registry/my_rails_app servers: web: hosts: - your-server-ip app: container_name: my_rails_app_web # 其他app相关配置(如环境变量、端口映射等)
- 为sidekiq服务指定容器名称:
# 在deploy.yml中追加sidekiq配置 sidekiq: container_name: my_rails_app_sidekiq # 其他sidekiq配置(如队列、进程数等)
补充说明
container_name是字符串类型,指定后Docker会使用该名称替代默认生成的名称:
container_name是一个字符串,用于指定自定义容器名称,替代默认生成的名称。
- 容器名称在单台宿主机上必须唯一,如果部署多台服务器,建议结合主机名变量避免冲突,比如:
app: container_name: my_rails_app_web_%{host}
%{host}会被Kamal自动替换为目标服务器的主机名,确保每台服务器上的容器名称唯一。
内容的提问来源于stack exchange,提问作者user352290
相关产品推荐
相关产品推荐

