You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:30:42