关于nacos上传配置文件本地微服务项目找不到的bug
·
背景
来自网络的一个微服务项目,结合了docker的配置。模板来自若依。
docker的rar文件来自项目资料,在云服务器上进行docker环境的配置如下:
docker load -i minio.tar
docker load -i mysql.tar
docker load -i nacos.tar
docker load -i rabbitmq.tar
docker load -i redis.tar
docker load -i sentinel.tar
# 启动容器(如果不存在容器就创建、存在则修改)
docker compose -f docker-compose.yml up -d
运行结果:
微服务root项目,maven编译:

输出构建成功:
[INFO] --- resources:3.3.1:resources (default-resources) @ spzx-product ---
[INFO] Copying 11 resources from src\main\resources to target\classes
[INFO]
[INFO] --- compiler:3.13.0:compile (default-compile) @ spzx-product ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 50 source files with javac [debug target 17] to target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.736 s
[INFO] Finished at: 2025-11-11T19:26:08+08:00
[INFO] ------------------------------------------------------------------------
问题
运行其中微服务子服务,出现了问题:

由于找不到配置文件引出的找不到数据库url的问题。
问题定位
上nacos网站查看存在所需的文件以及对应的配置

子项目服务所需的文件是:spzx-product-dev.yml,补充上传
配置内容完善没有问题

问题出在本地微服务的bootstrap.yml文件,原始的若依代码没有指定命名空间。
需要在config处加入命名空间的id,而不是命名空间的dev名称。如果存在其他分组不是默认的“DEFAULT_GROUP”,还需要指定分组。
# Tomcat
server:
port: 9205
# Spring
spring:
application:
# 应用名称
name: spzx-product
profiles:
# 环境配置
active: dev
main:
allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: *****:8848
config:
# 配置中心地址
server-addr: *****:8848
# 配置文件格式
file-extension: yml
namespace: 74bdcbff-0f71-464f-a94e-7d4c93a5a0f3
# group: DEFAULT_GROUP
# 共享配置
shared-configs:
application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
refresh: true
修改成功之后成功运行。

更多推荐
所有评论(0)