Spring config дополнительное расположение как переменная окружения в docker-compose - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь сказать 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

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Ну, это безумие ...

Я изменил свой Dockerfile, который запускает это Java-приложение, так что теперь я могу передать дополнительную конфигурацию в качестве аргумента командной строки. Я также добавил bash-скрипт для запуска моего Java-приложения.

Dockerfile

ENTRYPOINT ./startJavaApp.sh

startJavaApp.sh

java -XX:+UseContainerSupport $JAVA_OPTIONS -jar ../sample-service.jar --spring.config.additional-location=file:/app/sample-service-config.yml

Похоже, передача его в качестве аргумента командной строки сработала.

0 голосов
/ 02 мая 2019

Вы также можете использовать следующий формат:

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"

ССЫЛКА - Переменная окружения для составления докера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...