- Notifications
You must be signed in to change notification settings - Fork 41.7k
Description
Hi,
Context:
I'm trying to configure a spring boot application using docker secrets. Since spring boot does not support _FILE environment vars out of box. I figure out whats should work out of the box.
Reading spring-projects/spring-framework#21961 I got this: #19990
The configuration is needs a property called keycloak.password. I setup a docker secret called keycloak-password which lives in /var/run/secrets/keycloak-password. As i know, docker secrets are always in /var/run/secrets/, I could not use the wildcard feature of config tree here.
According to https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/spring-boot-features.html#boot-features-external-config-files-configtree I configured may application env variables like this:
SPRING_CONFIG_IMPORT='configtree:var/run/secrets/' but the still missing the keycloak.password property.
While KEYCLOAK_PASSWORD=admin work fine, using KEYCLOAK_PASSWORD=${keycloak-password} raise an error like:
*************************** APPLICATION FAILED TO START *************************** Description: Failed to bind properties under 'keycloak.password' to java.lang.String: Property: keycloak.password Value: ${keycloak-password} Origin: System Environment Property "KEYCLOAK_PASSWORD" Reason: Circular placeholder reference 'keycloak-password' in property definitions Action: Update your application's configuration Actual Result
The property keycloak.password isn't configureable via docker secrets. Re-assign the var via environment variables results in Circular placeholder reference.
Expected Result
Configtree should have the same relax binding support as I known form env variables.