Rohan Aditeya
Rohan Aditeya

Reputation: 33

Spring boot GraalVM application does not load properties from application-<profile>.yaml files

I'm trying to build a spring boot application to a graalvm native image. I do set the active profiles at build time in the processAot tasks as shown below

tasks.processAot {
    jvmArgs("-Dspring.profiles.active=local")
}

The build is successful and when I run the generated jar with -Dspring.aot.enabled=true VM arg I can see that the application-local.yaml is loaded and added to spring boot property sources by enabling trace logs for ConfigDataEnvironment class which prints the below logs.

2025-02-01T16:23:05.717+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Building config data environment contributors
2025-02-01T16:23:05.717+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'configurationProperties'
2025-02-01T16:23:05.717+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'systemProperties'
2025-02-01T16:23:05.717+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'systemEnvironment'
2025-02-01T16:23:05.717+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'random'
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'applicationInfo'
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding initial config data import from location 'optional:file:./;optional:file:./config/;optional:file:./config/*/'
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding initial config data import from location 'optional:classpath:/;optional:classpath:/config/'
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Processing initial config data environment contributors without activation context
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating config data activation context from initial contributions
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Processing config data environment contributors with initial activation context
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Deducing profiles from current config data environment contributors
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Processing config data environment contributors with profile activation context
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Applying config data environment contributions
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding imported property source 'Config resource 'class path resource [application-local.yaml]' via location 'optional:classpath:/''
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Skipping inactive property source 'Config resource 'class path resource [application.yaml]' via location 'optional:classpath:/' (document #1)'
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding imported property source 'Config resource 'class path resource [application.yaml]' via location 'optional:classpath:/' (document #0)'
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Setting default profiles: [default]
2025-02-01T16:23:05.718+05:30 TRACE 15612 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Setting active profiles: [local]

However on executing the graalvm native image I can see from the logs that the application-local.yaml is not loaded and hence my application is throwing an error.

2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Building config data environment contributors
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'configurationProperties'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'systemProperties'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'systemEnvironment'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'random'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating wrapped config data contributor for 'applicationInfo'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding initial config data import from location 'optional:file:./;optional:file:./config/;optional:file:./config/*/'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding initial config data import from location 'optional:classpath:/;optional:classpath:/config/'
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Processing initial config data environment contributors without activation context
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Creating config data activation context from initial contributions
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Processing config data environment contributors with initial activation context
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Deducing profiles from current config data environment contributors
2025-02-01T10:29:47.371Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Processing config data environment contributors with profile activation context
2025-02-01T10:29:47.372Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Applying config data environment contributions
2025-02-01T10:29:47.372Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Skipping inactive property source 'Config resource 'class path resource [application.yaml]' via location 'optional:classpath:/' (document #1)'
2025-02-01T10:29:47.372Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Adding imported property source 'Config resource 'class path resource [application.yaml]' via location 'optional:classpath:/' (document #0)'
2025-02-01T10:29:47.372Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Setting default profiles: [default]
2025-02-01T10:29:47.372Z TRACE 1 --- [fantasy-football-web-api] [           main] [,]o.s.b.c.config.ConfigDataEnvironment     : Setting active profiles: []

I using spring boot version 3.4.0. Can anyone point out why the property file is not loaded in the docker image alone?? I can share any more details if needed.

Upvotes: 0

Views: 30

Answers (0)

Related Questions