Я пытаюсь сказать Spring, чтобы добавить свойства из файла, который находится за пределами jar.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files
У меня есть файл для создания Docker, в котором я определяю переменные среды для приложения Spring Boot.
sample-service:
build:
context: "./sample-service/app"
dockerfile: Dockerfile
container_name: sample-service
restart: always
mem_limit: 400000000
env_file: .env
environment:
- "SPRING_PROFILE=dev"
- "APPLICATION_NAME=sample-service"
- "SPRING_CONFIG_ADDITIONAL-LOCATION=file:/app/sample-service-config.yml"
- "JAVA_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5006"
ports:
- 5006:5006
Когда я в отладчике, я выполняю собственный код.
System.getenv("SPRING_PROFILE")
Возвращает dev
. Когда я бегу
System.getenv("APPLICATION_NAME")
Возвращает sample-service
. Когда я бегу
System.getenv("SPRING_CONFIG_ADDITIONAL-LOCATION")
Возвращает null
.
Обновление
Некоторые люди предполагают, что докер не поддерживает дефисы
https://github.com/docker/compose/issues/2370