最近需要用aarch64系统安装milvus,踩了很多坑,记录分享一下学习经验。
如果要使用源码编译安装,要解决很多依赖以及版本问题,很复杂,arm64经常编译报错,采用docker安装简单快捷。
1.拉取镜像
此处采用的dockerhub上aarch64-milvus2.0编译成的镜像安装
https://hub.docker.com/r/hsyi177193/milvus-arm64
docker pull hsyi177193/milvus-arm64
直接进行下一步再拉取也可以
2.修改docker-compose文件
官网本身提供了docker-compose.yml一间搭建etcd,milvus,minio。由于要采用aarch64编译,使用的镜像不同,需要进行修改,以下是我改好的yml:
version: '3.5'
services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.0
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_SNAPSHOT_COUNT=50000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
minio:
container_name: milvus-minio
image: minio/minio:RELEASE.2022-03-17T06-34-49Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
ports:
- "9001:9001"
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/minio:/minio_data
command: minio server /minio_data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
standalone:
container_name: milvus-arm64
image: hsyi177193/milvus-arm64:v1
command: /bin/bash -c "cd /data/milvus-2.0_aarch64 && sh scripts/start_standalone.sh"
restart: on-failure
command: ["sleep","infinity"]
environment:
ETCD_ENDPOINTS: etcd:2379
MINIO_ADDRESS: minio:9000
volumes:
- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"
privileged: true
networks:
default:
name: milvus
3.运行docker容器
执行以下命令启动容器
sudo docker-compose up -d
4.设置开机自启动
也可以在docker-compose里面添加restart:always,我本人是先启动了容器,发现没有设置开机自启动。
执行docker ps看一下容器id,执行命令:
docker update --restart=always 容器id
到这里milvus的三个容器应该正常启动运行,有问题请留言交流讨论