[alibaba/nacos]docker 搭建nacos单机版配置中心持久化配置使用mysql数据库不生效 #969

2023-12-22 610 views
3

从之前的 tar 包安装 nacos 后,再调整为使用 docker 构建单机版,已经指定了 MySQL 数据库持久化配置,启动服务后接口无法加载之前配置的配置信息,日志不报错

以下是nacos 启动命令

docker run \ --name nacos -d \ -p 8848:8848 \ --privileged=true \ --restart=always \ -e JVM_XMS=256m \ -e JVM_XMX=256m \ -e MODE=standalone \ -e PREFER_HOST_MODE=hostname \ -v /home/nacos/logs:/home/nacos/logs \ -v /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties \ nacos/nacos-server

我理解如果在使用docker run 启动的时候指定了custom.properties 配置文件,则应该是读取指定custom.properties 配置文件,反之在启动过程中没有指定custom.properties配置文件,则读取默认的application.properties配置文件吧

以下是custom.properties 配置文件内容

server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.11.38:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=yxw&123!
nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false
management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true                                                                                                                                                                                                                            

持久化配置使用mysql数据库,config_info配置表中有项目中配置信息,实际上nacos 启动后成功后界面并未加载到配置信息,因此我不确定这是不是算bug。

回答

4

不知道是不是因为最新版已经不支持这个脚本了 换成旧一点的版本再试试? 建议直接对application.properties挂卷修改 nacos-group/nacos-docker/README

7

可以进到容器中查看一下startup.sh 是否有读取/home/nacos/init.d/custom.properties

5

请问你在docker搭建的nacos可以添加配置信息到nacos数据库的config_info表吗?我发现通过docker搭建的nacos添加的配置信息数据tenant_id为undefined,而之前的配置信息tenant_id这个字段为空

1

db.user.0=root db.password.0=yxw&123! 试试是不是和这个有关

4

关于你说的这个问题,验证过不存在你说的这种情况

3

容器读取的是custom.properties 配置,我尝试将custom.properties替换为application.properties 后,问题解决,经过验证不支持读取指定的custom.properties配置文件

1

我尝试将custom.properties替换为application.properties 后,问题解决,经过验证得知不支持读取指定的custom.properties配置文件