背景
m1不支持本地安装,只能用docker :
“由于 rocksdb
暂不支持 M1 平台,所以使用 Zulu JDK 的小伙伴们运行 Nacos 2.x 版本会报错,网上通用的解决方案是使用 Oracle JDK 来运行 Nacos 2.x 版本,但对于强迫症的我来说,一山不容二虎!并不想额外在安装 Oracle JDK,所以决定使用 Docker 来运行 Nacos 2.x 版本,恰巧官方有给出适配 ARM64 的镜像版本。”
环境: 本地安装的mysql、 docker desk 、mac M1
1、拉取nacos镜像
docker pull zhusaidong/nacos-server-m1:2.0.3
ps:就这个支持m1,就很无奈
2、启动容器并创建相应的端口
docker run --env MODE=standalone --name nacos2.0.3 -d -p 8848:8848 -p 9848:9848 -p 9849:9849 zhusaidong/nacos-server-m1:2.0.3
直接访问:localhost:8084/nacos
ps: "MODE=standalone " 设置了单机启动。
3、配置mysql数据库
一般开发都用 数据库存储,而不是内置的存储。所以我们需要创建nacos数据库,并执行nacos的sql脚本。
create database db_nacos;
脚本在容器文件目录- home\nacos\conf\schema.sql,可以通过docker desk 界面操作打开。
copy脚本内容后到数据库执行:
4、修改nacos配置
如操作3一样打开配置文件路径:home\nacos\conf\application.properties
右键“Edit File”修改以下内容:
spring.datasource.platform=mysqldb.num=1
db.url.0=jdbc:mysql://host.docker.internal:3306/db_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=mofsfely
ps: 这里是docker容器的nacos,访问宿主机的mysql,用到了“host.docker.internal”(这是一个变量)。其他的教程写的是宿主机的真实ip,而真实ip会随着网络变化而变化,明显不如这个方法好
5、重新启动容器
重新启动容器,就已经是mysql存储的了。如果要验证是否mysql存储。通过查询用户密码,记录当前密码字符。然后修改密码,再查看密码字符,如果变化,就说明成功。
select * from users;
参考地址
MacBook Pro M1 Docker 环境安装 Nacos 2.x 版本
m1的mac电脑在docker上安装nacos及配置