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

Spring Boot + Docker Compose外部YAML配置文件加载失败求助

问题分析与解决

首先看报错信息:

Config data resource 'file [config/backend-secrets.yaml]' via location 'file:./config/secrets.yaml' does not exist

结合你的Docker Compose配置,核心问题是路径不匹配:

  1. 你的volumes配置将本地./config/secrets/目录挂载到容器内的/config目录,因此容器内配置文件的实际路径应为/config/backend-secrets.yaml(前提是本地./config/secrets/目录下确实存在backend-secrets.yaml文件)。
  2. 你设置的SPRING_CONFIG_IMPORT使用相对路径./config/backend-secrets.yaml,该路径是相对于容器内应用的工作目录(通常是镜像默认的工作目录,比如/app),而非挂载的/config目录,导致Spring无法找到目标文件。

解决方案

修改Docker Compose中的环境变量路径为容器内的绝对路径:

services:
  backend:
    image: ghcr.io/acemint/something:main
    container_name: backend
    environment:
      # 改用容器内的绝对路径指向挂载目录下的配置文件
      SPRING_CONFIG_IMPORT: file:/config/backend-secrets.yaml
    secrets:
      - backend_secrets
    volumes:
      - ./config/secrets/:/config

额外检查点

  • 确认本地./config/secrets/目录下存在backend-secrets.yaml文件,文件名和路径完全匹配(Linux容器区分大小写,注意避免大小写错误)。
  • 若Spring应用镜像自定义了工作目录,也可使用相对路径,但必须确保该相对路径能指向挂载的/config目录,不过绝对路径的可靠性更高。

内容的提问来源于stack exchange,提问作者Steven Kristian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:17:14