解决M1芯片使用Dokcer运行Nacos1.4.4报错问题

637 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情

一、/home/nacos/init.d/路径不存在报错

进入容器终端,发现终端的报错信息如下:

2023-02-07 11:19:26 ***************************

2023-02-07 11:19:26 APPLICATION FAILED TO START

2023-02-07 11:19:26 ***************************

2023-02-07 11:19:26

2023-02-07 11:19:26 Description:

2023-02-07 11:19:26

2023-02-07 11:19:26 Config data location '/home/nacos/init.d/' does not exist

2023-02-07 11:19:26

2023-02-07 11:19:26 Action:

2023-02-07 11:19:26

2023-02-07 11:19:26 Check that the value '/home/nacos/init.d/' is correct, or prefix it with 'optional:'

信息提示/home/nacos/init.d/不存在,解决方法就是进入容器终端,在/home/nacos目录中创建init.d文件夹即可解决。

mkdir /home/nacos/init.d

二、无法绑定tomcat根目录

修复完成第一个报错后就会出现这个报错,容器终端报错如下:

2023-02-07 11:22:39 ***************************

2023-02-07 11:22:39 APPLICATION FAILED TO START

2023-02-07 11:22:39 ***************************

2023-02-07 11:22:39

2023-02-07 11:22:39 Description:

2023-02-07 11:22:39

2023-02-07 11:22:39 Failed to bind properties under 'server.tomcat.basedir' to java.io.File:

2023-02-07 11:22:39

2023-02-07 11:22:39 Property: server.tomcat.basedir

2023-02-07 11:22:39 Value:

2023-02-07 11:22:39 Origin: InputStream resource [resource loaded through InputStream] - 34:0

2023-02-07 11:22:39 Reason: failed to convert java.lang.String to java.io.File (caused by java.lang.IllegalStateException: Could not retrieve file for class path resource []: class path resource [] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/home/nacos/target/nacos-server.jar!/BOOT-INF/classes!/)

2023-02-07 11:22:39

2023-02-07 11:22:39 Action:

2023-02-07 11:22:39

2023-02-07 11:22:39 Update your application's configuration

这个报错原因是nacos的配置文件中指定了空的tomcat目录,虽然配置文件中的注释描述留空后,nacos会自动读取默认值,但是是实际上并没有读取,导致程序异常。

解决办法一:注释掉tomcat选项,nacos就能成功读取默认值。

解决办法二:把tomcat选项指向一个存在的目录。

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情