您好,我在 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
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 容器启动时执行。