Nacos 多架构镜像构建
本文关注如何在采用 Apple 芯片的 Mac 电脑上运行 Nacos。
打包 Nacos 容器镜像,推送到 MicroK8s 内置镜像仓库,通过 Helm 将 Nacos 安装到 MicroK8s 上。
预备¶
参见 搭建容器化开发环境。
Nacos¶
注册中心技术选型:Zookeeper/Consul/Etcd/Nacos/Eureka。
MySQL¶
Nacos 支持 MySQL。
安装¶
docker run -d -p 3306:3306 --name nacos -e MYSQL_ROOT_PASSWORD=root mysql/mysql-server:8.0.30-aarch64
配置¶
解决 Host '192.168.205.1' is not allowed to connect to this MySQL server 问题。
docker exec -it nacos bash
mysql -u root -p
-- use mysql;
-- update user set host = '%' where user = 'root';
-- FLUSH PRIVILEGES;
数据库初始化¶
参见 https://raw.githubusercontent.com/alibaba/nacos/master/config/src/main/resources/META-INF/nacos-db.sql。
Nacos Docker¶
docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server:v2.1.2
# WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
当运行一个支持多平台的镜像时,docker
自动选择与操作系统和架构匹配的镜像。
Nacos 官方镜像 只支持平台 linux/amd64。
多平台镜像¶
查看平台架构¶
uname -m
查看镜像支持的平台¶
docker manifest inspect $IMAGE --verbose
构建流程¶
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
multipass mount . docker:/tmp/nacos-docker
multipass shell docker
cd /tmp/nacos-docker
docker build ./build -f build/Dockerfile -t 192.168.205.59:32000/z/nacos-server:v2.1.2
docker push 192.168.205.59:32000/z/nacos-server:v2.1.2
镜像信息¶
http 192.168.205.59:32000/v2/z/nacos-server/manifests/v2.1.2
多平台构建¶
docker buildx ls
docker buildx create --use --name build --node build --driver-opt network=host
docker buildx build ./build -f build/Dockerfile -t 192.168.205.59:32000/z/nacos-server:v2.1.2-m --platform linux/arm64,linux/amd64
Nacos K8S¶
FAQ¶
Manifest 未找到¶
问题描述:
docker run --name nacos-quick -e MODE=standalone -p 8849:8848 -d nacos/nacos-server:v2.1.2
# docker compose -f example/standalone-derby.yaml up
# Error response from daemon: manifest for nacos/nacos-server:2.1.2 not found: manifest unknown: manifest unknown
解决方案:
sed -i s/2.1.2/v2.1.2/g example/.env
参考¶
最后更新: September 10, 2023