跳转至

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

评论