Spring Boot无法读取Docker中的application.properties
在Docker容器中运行时,Spring Boot不会读取应用程序属性。
我的application.yml
server: port: 8080 context-path: /mail custom: greeting: Hello YML
Dockerfile
FROM java:8-jre VOLUME /tmp COPY ./mail.jar /app/mail.jar RUN sh -c 'touch /app/mail.jar' ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app/mail.jar" ] EXPOSE 8080
还有一个简单的ApplicationController
@RestController public class ApplicationController { private final Environment environment; @Autowired public ApplicationController(Environment environment) { this.environment = environment; } @RequestMapping(path = "/") public Hello hello() { final Hello hello = new Hello(); hello.setGreeting(environment.getProperty("custom.greeting")); return hello; } }
我使用IntelliJ Docker插件,自动映射端口8080(泊坞窗):18080(主机),并使应用程序在http:// localhost:18080
docker
- server.context-path属性不适用。 应用程序仍然可用/而不是/邮件/
- custom.greeting属性不读取属性文件和控制器返回{“greeting”:null}而不是{“greeting”:“Hello YML”}
没有Docker
-
上下文path正确应用
-
custom.greeting属性由控制器正确返回