Docker容器中Spring无法加载application.yml的问题排查求助
Docker部署Spring应用无法读取application.yml配置问题
我正在开发一个基于Java/Gradle/Spring的简易应用,并进行Docker化部署。本地未使用Docker运行时,应用可正常读取application.yml中的配置值;但运行Docker镜像时,无法读取该文件的任何配置。
我的Dockerfile
FROM eclipse-temurin:17-jdk EXPOSE 8080 RUN mkdir -p /app/ ADD build/libs/image-name-0.0.1-SNAPSHOT.jar /app/image-name.jar ADD build/resources/main/application.yml /app/application.yml ENTRYPOINT ["sh", "-c", "java -Djava.security.egd=file:/dev/./urandom -jar /app/image-name.jar --spring.config.location=file:/app/application.yml"]
我已将application.yml复制到Docker镜像中与jar包相同的目录,且在启动命令中指定了配置文件路径(路径错误时应用启动会失败)。
我的docker-compose.yml(上下文参考)
version: '2' services: image-name: image: 'image-name:latest' container_name: image-name ports: - "8081:8080" build: context: . depends_on: - postgres_db environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/compose-postgres - SPRING_DATASOURCE_USERNAME=admin - SPRING_DATASOURCE_PASSWORD=password - SPRING_JPA_HIBERNATE_DDL_AUTO=update postgres_db: image: 'postgres:13.1-alpine' container_name: postgres_db environment: - POSTGRES_USER=admin # TODO: CHANGE THIS LATER - POSTGRES_PASSWORD=password # TODO: CHANGE THIS LATER
使用docker run命令运行也得到相同结果。
Spring Actuator相关问题
我已添加Spring Actuator依赖,并通过application.yml暴露health端点。本地运行时会出现如下日志,且/actuator/health端点可正常访问;但Docker运行时该日志缺失,访问端点返回404:
2022-12-26T15:07:08.439-06:00 INFO 23289 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator'
已查阅大量相关Stack Overflow帖子仍未解决问题,请问我哪里操作有误?
内容的提问来源于stack exchange,提问作者Tresk33
相关产品推荐
相关产品推荐

