首页 > 解决方案 > YAML 与 Anchors ...如何结合?

问题描述

嗨,这就是我的情况

x-service-setting: &service-settings
  environment:
    - RabbitMQ:HostName=rabbitmq
    - RabbitMQ:Port=5672
    - RabbitMQ:VirtualHost=/

我要创建这个服务的多个实例,不同的服务有不同的后端点。

  service_1:
    container_name: service_1
    <<: *service-settings
    environment:
      - EndPoint : service_1 Endpoint
  

  sercices_2:
    container_name: sercices_2
    <<: *service-settings
    environment:
      - EndPoint : service_2 Endpoint

有可能像下面这样吗?

  environment:
    - RabbitMQ:HostName=rabbitmq
    - RabbitMQ:Port=5672
    - RabbitMQ:VirtualHost=/
    - EndPoint : service_1 Endpoint
  environment:
    - RabbitMQ:HostName=rabbitmq
    - RabbitMQ:Port=5672
    - RabbitMQ:VirtualHost=/
    - EndPoint : service_2 Endpoint

标签: dockeryaml

解决方案


YAML 合并键仅适用于映射。它不会递归合并;它只是对当前映射中已经存在的键没有任何作用(在您的代码中就是这种情况)。

您将需要像 Jinja 这样的模板引擎(通常与 YAML 一起使用,例如在 Ansible 或 SaltStack 中)来执行此类处理。


推荐阅读