Local adicional de configuração do Spring como variável de ambiente em docker-compose

Yan Khonski

Estou tentando dizer ao Spring para adicionar propriedades de um arquivo, que está fora do jar.

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files

Eu tenho o arquivo docker compose onde defino variáveis ​​de ambiente para o aplicativo 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

Quando estou no depurador, executo o código personalizado.

System.getenv("SPRING_PROFILE")

Ele retorna dev. Quando eu corro

System.getenv("APPLICATION_NAME")

Ele retorna sample-service. Quando eu corro

System.getenv("SPRING_CONFIG_ADDITIONAL-LOCATION")

Ele retorna null.


Atualizar

Algumas pessoas sugerem que o docker não suporta hifens https://github.com/docker/compose/issues/2370

Yan Khonski

Bem, é uma loucura ...

Mudei meu Dockerfile que inicia este aplicativo Java, então agora posso passar um local de configuração adicional como um argumento de linha de comando. Também adicionei um script bash para iniciar meu aplicativo 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

Parece que transmiti-lo como um argumento de linha de comando funcionou.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Use o nome ou id do contêiner como variável de ambiente no docker compose yml

Como ler valores de arquivo local em variáveis de ambiente Docker-compose?

A variável de ambiente docker compose não está configurando a variável dentro do Dockerfile

Como usar variáveis de ambiente docker-compose para preencher o arquivo de configuração

Como usar variáveis de ambiente docker-compose para preencher o arquivo de configuração

Como o Spring mapeia as variáveis de ambiente do Docker?

Como usar uma variável de ambiente de um docker-compose.yml em um Dockerfile?

Como você passa uma variável de ambiente para o Solr em execução no Docker quando a variável de ambiente só existe dentro do contêiner?

Como faço para direcionar o módulo de configuração do Django em uma variável de ambiente no PythonAnywhere?

variável de ambiente de compilação docker-compose

variável de ambiente de compilação docker-compose

Como obter a variável de ambiente do arquivo .env para um docker-compose.yml?

Definir o valor booleano em docker-compose.yaml usando a variável de ambiente

Como reconstruir um ambiente de variável local em python?

Como reconstruir um ambiente de variável local em python?

Passe a variável de ambiente do arquivo env externo para o contêiner usando docker compose

Usando a variável de ambiente para o nome do volume no docker compose

Passe a variável de ambiente do arquivo env externo para o contêiner usando docker compose

Como faço para usar variáveis de ambiente no arquivo .env em docker-compose.yml?

Como faço para usar variáveis de ambiente no arquivo .env em docker-compose.yml?

Variáveis de ambiente em docker-compose são substituídas como string vazia

Como usar variáveis de ambiente em docker-compose na produção?

É possível usar uma variável de ambiente como verificação de integridade do docker

Como obter a formatação adequada das variáveis de ambiente do Docker-compose Multiline?

Em docker-compose, posso usar a variável de ambiente para construir outra variável de ambiente?

Como posso usar a variável de ambiente no arquivo de configuração do hibernate?

Como usar a variável de ambiente local com o Vagrant?

Como usar a variável de ambiente local com o Vagrant?

Transforme o valor da variável de ambiente docker-compose em endereço IP de serviço

TOP lista

quentelabel

Arquivo