Docker compose:如何在 docker compose 中附加我的应用程序属性的属性

问题描述 投票:0回答:1

您好,我在 docker compose 中重写了我的应用程序属性,我想知道如何附加到现有文件而不是覆盖属性。

wishlist-service:
    image: tejajagadeep/movie-app-wishlist-service:latest
    container_name: wishlist-container
    environment:
      - eureka.client.service-url.defaultZone=http://eureka-server:8761/eureka
      - spring.config.import=optional:configserver:http://config-server:8888/
      - management.zipkin.tracing.endpoint=http://zipkin-server:9411/api/v2/spans
      - swagger.server.url=http://localhost:8769/,http://localhost:4200/
      - spring.data.mongodb.uri=mongodb://root:root1234@mongodb:27017/wishlistdb?authSource=admin
    ports:
      - "8082:8082"
    networks:
      - my-movie-network

我想追加此属性而不是覆盖它。

- swagger.server.url=http://localhost:8769/,http://localhost:4200/, + values
spring spring-boot docker docker-compose application.properties
1个回答
1
投票

Docker Compose 不提供用于附加到 Compose 文件本身内的环境变量的内置方法。您在

docker-compose.yml
文件中的服务环境部分中定义的每个环境变量都会在 Docker 容器运行时定义该环境变量,如果该变量已存在,则会被覆盖。

应用程序代码中的配置

如果您可以控制应用程序代码,请考虑编写代码,以便应用程序可以读取

swagger.server.url
环境变量和另一个变量,例如
additional.swagger.server.urls
。然后,您的应用程序可以根据需要组合并使用这两个值。 之后,在 Docker Compose 文件中,像以前一样定义
swagger.server.url
并定义
additional.swagger.server.urls
以获得额外值。

Shell 脚本

您可以为 Docker 容器编写一个启动脚本,将多个环境变量的值合并为一个。这个 shell 脚本可以在 Docker 容器启动时执行。

© www.soinside.com 2019 - 2024. All rights reserved.