如何在使用YAML锚点时防止覆盖整个环境字段

huangapple go评论161阅读模式
英文:

How to prevent overwriting the whole environment field while using YAML anchors

问题

我正在编写我的docker-compose.yml文件,为了避免编写冗余的代码,特别是在使用不同的配置文件(如dev、uat、prod等)时,我使用了yaml锚点。这是我在uat和dev中使用的一个适配器的示例。

  1. Adapter:&Adapter
  2. image: "my-image"
  3. profiles:
  4. - uat
  5. environment:
  6. - JAVA_OPTS="${JAVA_OPTS} -Dloader.main=com.my.class"
  7. - SPRING_PROFILES_ACTIVE=uat
  8. volumes:
  9. - /local/path/to/logs:/logs
  10. depends_on:
  11. - some_image
  12. Adapter-dev:
  13. <<: *Adapter
  14. profiles:
  15. - dev
  16. environment:
  17. - SPRING_PROFILES_ACTIVE=dev

.env文件包含:

  1. JAVA_OPTS=-Xmx3g -Xms3g

关键部分是JAVA_OPTS是必须的,以便正确运行。JAVA_OPTS存储在.env文件中,我附加到JAVA_OPTS变量以指定我的主类。我刚刚发现,以上述方式进行操作会完全覆盖环境变量,并且只传递SPRING_PROFILES_ACTIVE到我的docker容器的环境变量中。我期望的是只覆盖SPRING_PROFILES_ACTIVE,而保留JAVA_OPTS。如何在docker-compose.yml中只覆盖SPRING_PROFILES_ACTIVE而不覆盖JAVA_OPTS呢?

英文:

I am writing my docker-compose.yml file and to avoid writing redundant lines especially for using different profiles for dev, uat, prod etc, I was using yaml anchors. Here is a sample for one of the adapters I used for uat and for dev.

  1. Adapter:&amp;Adapter
  2. image:&quot;my-image&quot;
  3. profiles:
  4. - uat
  5. environment:
  6. - JAVA_OPTS=&quot;${JAVA_OPTS} -Dloader.main=com.my.class&quot;
  7. - SPRING_PROFILES_ACTIVE=uat
  8. volumes:
  9. - /local/path/to/logs:/logs
  10. depends_on:
  11. - some_image
  12. Adapter-dev:
  13. &lt;&lt;: *Adapter
  14. profiles:
  15. - dev
  16. environment:
  17. - SPRING_PROFILES_ACTIVE=dev

.env file contains:

  1. JAVA_OPTS=-Xmx3g -Xms3g

The key part is that the JAVA_OPTS is a must have in order to run properly. The JAVA_OPTS is stored in a .env file, and I append to the JAVA_OPTS variable to specify my main class. I just found out that doing it in the way above, it overwrites the environment entirely and only passes the SPRING_PROFILES_ACTIVE to my docker container's environment variables. What I expected would be that only SPRING_PROFILES_ACTIVE would be overwritten, but the JAVA_OPTS would be preserved. How can I only overwrite the SPRING_PROFILES_ACTIVE in my docker-compose.yml without overwriting the JAVA_OPTS?

答案1

得分: 1

这可能是我使用Compose的多个Compose文件的情况,它可以组合每个服务的设置。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置文件可以通过多个Compose文件进行组合。Compose的配置

英文:

This might be a case where I'd use Compose's support for multiple Compose files, which are able to combine per-service settings. Compose profiles are better for selecting which service to run, but not necessarily for controlling how to run it.

You'd have a base docker-compose.yml file that listed all of the settings that were required in every environment

  1. # docker-compose.yml
  2. version: &#39;3.8&#39;
  3. services:
  4. adapter:
  5. image: &quot;my-image&quot;
  6. environment:
  7. - JAVA_OPTS=&quot;${JAVA_OPTS} -Dloader.main=com.my.class&quot;
  8. volumes:
  9. - /local/path/to/logs:/logs
  10. depends_on:
  11. - some_image

Then you'd have a file per environment that added settings for only that environment

  1. # docker-compose.uat.yaml
  2. version: &#39;3.8&#39;
  3. services:
  4. adapter:
  5. environment:
  6. - SPRING_PROFILES_ACTIVE=uat

When you go to run docker-compose commands, you can then specify both files using docker-compose -f options. Note that you need to specify both files on every docker-compose invocation; setting a $COMPOSE_FILE environment variable may be a little easier.

  1. docker-compose -f docker-compose.yml -f docker-compose.uat.yaml up -d

There are two versions of the Compose tooling, an older one that runs as a standalone tool and a newer one packaged as a docker CLI extension. This setup will work with both of them.

答案2

得分: 1

在Compose中,你可以设置一个服务来扩展另一个服务。这与你展示的YAML锚点的功能基本相同,但它还允许你提供额外的设置。

  1. version: '2.4'
  2. services:
  3. adapter:
  4. image: "my-image"
  5. profiles: []
  6. environment:
  7. - JAVA_OPTS="${JAVA_OPTS} -Dloader.main=com.my.class"
  8. volumes:
  9. - /local/path/to/logs:/logs
  10. adapter-uat:
  11. extends:
  12. service: adapter
  13. profiles:
  14. - uat
  15. environment:
  16. - SPRING_PROFILES_ACTIVE=uat
  17. depends_on:
  18. - some_image
  19. adapter-dev:
  20. extends:
  21. service: adapter
  22. profiles:
  23. - dev
  24. environment:
  25. - SPRING_PROFILES_ACTIVE=dev
  26. depends_on:
  27. - some_image

depends_on:extends: 服务中不能被重用,所以我在每个环境的服务中都复制了它。

Compose工具有两个版本。如果你使用的是旧版本的工具(docker-compose --version 显示版本为1),请注意Compose文件格式版本3不包括 extends:;你需要在文件开头声明 version: 2.x,并且无法使用文件格式版本3中的一些与Swarm相关的功能。

英文:

In Compose you can set up one service to extend another. This does essentially what you're showing with YAML anchors, but it also lets you provide additional settings.

  1. version: &#39;2.4&#39;
  2. services:
  3. adapter:
  4. image: &quot;my-image&quot;
  5. profiles: []
  6. environment:
  7. - JAVA_OPTS=&quot;${JAVA_OPTS} -Dloader.main=com.my.class&quot;
  8. volumes:
  9. - /local/path/to/logs:/logs
  10. adapter-uat:
  11. extends:
  12. service: adapter
  13. profiles:
  14. - uat
  15. environment:
  16. - SPRING_PROFILES_ACTIVE=uat
  17. depends_on:
  18. - some_image
  19. adapter-dev:
  20. extends:
  21. service: adapter
  22. profiles:
  23. - dev
  24. environment:
  25. - SPRING_PROFILES_ACTIVE=dev
  26. depends_on:
  27. - some_image

depends_on: is documented to not be reused in extends: services, so I've copied it into each per-environment service here.

There are two versions of the Compose tool. If you are using the older version of the tool (docker-compose --version says it's version 1) then be aware that the Compose file format version 3 doesn't include extends:; you need to declare a version: 2.x at the start of the file and you will be unable to use some Swarm-related features in version 3 of the file format.

答案3

得分: 0

使用的具体解决方案是使用common-services.yml文件。这使我能够仅运行具有指定配置文件的服务,而不运行默认服务。我所做的是将默认服务提取到另一个yml文件中,如下所示:

common-services.yml:

services:
adapter:
image: "my-image"
profiles: []
environment:
- JAVA_OPTS="${JAVA_OPTS} -Dloader.main=com.my.class"
volumes:
- /local/path/to/logs:/logs

Docker Compose的yaml文件将如下所示:

docker-compose.yml

version: '3.9'
services:
adapter-uat:
extends:
file: common-services.yml
service: adapter
profiles:
- uat
environment:
- SPRING_PROFILES_ACTIVE=uat
depends_on:
- some_image

adapter-dev:
extends:
file: common-services.yml
service: adapter
profiles:
- dev
environment:
- SPRING_PROFILES_ACTIVE=dev
depends_on:
- some_image

英文:

The specific solution used was to utilise a common-services.yml file. This allowed me to only run the services with the specified profile without running the default services. What I did was to extract the default service to an additional yml file like so:

  1. #common-services.yml:
  2. services:
  3. adapter:
  4. image: &quot;my-image&quot;
  5. profiles: []
  6. environment:
  7. - JAVA_OPTS=&quot;${JAVA_OPTS} -Dloader.main=com.my.class&quot;
  8. volumes:
  9. - /local/path/to/logs:/logs

and the docker compose yaml will look like:

  1. #docker-compose.yml
  2. version: &#39;3.9&#39;
  3. services:
  4. adapter-uat:
  5. extends:
  6. file: common-services.yml
  7. service: adapter
  8. profiles:
  9. - uat
  10. environment:
  11. - SPRING_PROFILES_ACTIVE=uat
  12. depends_on:
  13. - some_image
  14. adapter-dev:
  15. extends:
  16. file: common-services.yml
  17. service: adapter
  18. profiles:
  19. - dev
  20. environment:
  21. - SPRING_PROFILES_ACTIVE=dev
  22. depends_on:
  23. - some_image

huangapple
  • 本文由 发表于 2023年8月9日 16:50:42
  • 转载请务必保留本文链接:https://go.coder-hub.com/76866053.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定