Servidor de configuração da nuvem da primavera. Variáveis de ambiente nas propriedades

Eu configurei o servidor Spring Cloud Config assim:

@SpringBootApplication
@EnableAutoConfiguration
@EnableConfigServer
public class ConfigServer {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServer.class, args);
    }
}

Estou usando o perfil 'nativo' para que as propriedades sejam selecionadas no sistema de arquivos:

server.port=8888
spring.profiles.active=native
spring.cloud.config.server.native.search-locations: classpath:/global

Agora, a parte complicada é que algumas propriedades contêmvariáveis ambientais. As propriedades em 'global / application-production.properties' são configuradas da seguinte maneira:

test=${DOCKER_HOST}

Quando inicio o Config Server - tudo funciona bem. No entanto, quando eu acessohttp: // localhost: 8888 / testapp / production Eu vejo isso:

{
    name: "testapp",
    profiles: [
        "production"
],
    label: null,
    version: null,
    propertySources: [
        {
            name: "classpath:/global/application-production.properties",
            source: {
                test: "${DOCKER_HOST}"
            }
        }
    ]
}

Portanto, o valor da variável ENV não está substituindo a venda $ {DOCKER_HOST}, mas sim retornada.

Mas se eu acessarhttp: // localhost: 8888 / application-production.properties o resultado é não JSON, mas texto simples:

test: tcp://192.168.99.100:2376

A documentação do Spring diz:

As representações YAML e properties têm um sinalizador adicional (fornecido como um parâmetro de consulta booleano resolvePlaceholders) para sinalizar que os espaços reservados nos documentos de origem, no formato padrão Spring $ {…}, devem ser resolvidos na saída sempre que possível antes da renderização. Esse é um recurso útil para consumidores que não conhecem as convenções de espaço reservado do Spring.

Por algum motivoresolvePlaceholders não está funcionando para a representação JSON, portanto, os clientes de configuração do servidor precisam estar cientes de todas as variáveis ENV configuradas no servidor.

É possível forçar a representação JSONresolvePlaceholders mesma maneira que a representação de texto sem formatação (propriedades)?

questionAnswers(3)

yourAnswerToTheQuestion