You've already forked DataMate
feat: Improve makefile readability, Add user control on volume keep at uninstallation, Add Label Studio install and uninstall via Make. (#106)
* feature: Add label studio installation and uninstallation commands to Makefile * feature: Enhance Makefile with detailed help commands and improve install/uninstall targets for services * feature: Update Makefile help commands to clarify usage of local images * feature: Improve error handling in Makefile for build, install, and uninstall targets * feature: Enhance uninstall process in Makefile to prompt for volume deletion and update README with usage details --------- Co-authored-by: Jason Wang <wjl_jason@qq.com>
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -187,3 +187,6 @@ Thumbs.db
|
||||
.vscode/
|
||||
*.sublime-project
|
||||
*.sublime-workspace
|
||||
|
||||
# Milvus
|
||||
deployment/docker/milvus/volumes/
|
||||
494
Makefile
494
Makefile
@@ -3,30 +3,81 @@ MAKEFLAGS += --no-print-directory
|
||||
WITH_MINERU ?= false # 默认不构建mineru
|
||||
VERSION ?= latest
|
||||
NAMESPACE ?= datamate
|
||||
REGISTRY ?= "ghcr.io/modelengine-group/"
|
||||
|
||||
# Registry configuration: use --dev for local images, otherwise use GitHub registry
|
||||
ifdef dev
|
||||
REGISTRY :=
|
||||
else
|
||||
REGISTRY ?= ghcr.io/modelengine-group/
|
||||
endif
|
||||
|
||||
ifdef COMSPEC
|
||||
# Windows 环境
|
||||
# Windows
|
||||
MAKE := "C:/Program Files (x86)/GnuWin32/bin/make"
|
||||
else
|
||||
# Linux/Mac 环境
|
||||
# Linux/Mac
|
||||
MAKE := make
|
||||
endif
|
||||
|
||||
.PHONY: build-%
|
||||
build-%:
|
||||
$(MAKE) $*-docker-build
|
||||
# ========== Help ==========
|
||||
|
||||
.PHONY: build
|
||||
build: database-docker-build backend-docker-build frontend-docker-build runtime-docker-build backend-python-docker-build
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "DataMate Makefile - Available Commands"
|
||||
@echo ""
|
||||
@echo "Usage: make <target> [options]"
|
||||
@echo ""
|
||||
@echo "Options:"
|
||||
@echo " dev=true Use local images instead of registry (empty REGISTRY)"
|
||||
@echo " VERSION=<version> Set image version (default: latest)"
|
||||
@echo " NAMESPACE=<name> Set Kubernetes namespace (default: datamate)"
|
||||
@echo " INSTALLER=<type> Set installer type: docker or k8s"
|
||||
@echo ""
|
||||
@echo "Build Commands:"
|
||||
@echo " make build Build all core images"
|
||||
@echo " make <service>-docker-build Build specific service image"
|
||||
@echo " Valid services: backend, database, frontend, runtime,"
|
||||
@echo " backend-python, deer-flow, mineru"
|
||||
@echo ""
|
||||
@echo "Install Commands:"
|
||||
@echo " make install Install datamate + milvus (prompts for method)"
|
||||
@echo " make install INSTALLER=docker Install using Docker Compose"
|
||||
@echo " make install INSTALLER=k8s Install using Kubernetes/Helm"
|
||||
@echo " make install-<component> Install specific component (prompts)"
|
||||
@echo " make <component>-docker-install Install component via Docker"
|
||||
@echo " make <component>-k8s-install Install component via Kubernetes"
|
||||
@echo " Valid components: datamate, milvus, deer-flow, mineru"
|
||||
@echo " Valid services: backend, frontend, runtime, label-studio"
|
||||
@echo ""
|
||||
@echo "Uninstall Commands:"
|
||||
@echo " make uninstall Uninstall datamate + milvus (prompts)"
|
||||
@echo " make uninstall INSTALLER=docker Uninstall using Docker Compose"
|
||||
@echo " make uninstall INSTALLER=k8s Uninstall using Kubernetes/Helm"
|
||||
@echo " make uninstall-<component> Uninstall specific component (prompts)"
|
||||
@echo " make <component>-docker-uninstall Uninstall component via Docker"
|
||||
@echo " make <component>-k8s-uninstall Uninstall component via Kubernetes"
|
||||
@echo " Note: Docker uninstall will prompt whether to delete volumes"
|
||||
@echo ""
|
||||
@echo "Upgrade Commands:"
|
||||
@echo " make datamate-docker-upgrade Upgrade datamate deployment"
|
||||
@echo ""
|
||||
@echo "Utility Commands:"
|
||||
@echo " make create-namespace Create Kubernetes namespace"
|
||||
@echo " make help Show this help message"
|
||||
@echo ""
|
||||
@echo "Examples:"
|
||||
@echo " make build dev=true Build all images for local development"
|
||||
@echo " make install INSTALLER=docker Install via Docker Compose"
|
||||
@echo " make install dev=true Install using local images"
|
||||
@echo " make datamate-docker-upgrade Upgrade running datamate services"
|
||||
@echo ""
|
||||
|
||||
.PHONY: create-namespace
|
||||
create-namespace:
|
||||
kubectl get namespace $(NAMESPACE) > /dev/null 2>&1 || kubectl create namespace $(NAMESPACE)
|
||||
.DEFAULT_GOAL := help
|
||||
|
||||
.PHONY: install-%
|
||||
install-%:
|
||||
ifeq ($(origin INSTALLER), undefined)
|
||||
# ========== Functions ==========
|
||||
|
||||
# Prompt user to choose installer if not specified
|
||||
define prompt-installer
|
||||
@echo "Choose a deployment method:"
|
||||
@echo "1. Docker/Docker-Compose"
|
||||
@echo "2. Kubernetes/Helm"
|
||||
@@ -37,7 +88,99 @@ ifeq ($(origin INSTALLER), undefined)
|
||||
2) INSTALLER=k8s ;; \
|
||||
*) echo "Invalid choice" && exit 1 ;; \
|
||||
esac; \
|
||||
$(MAKE) $*-$$INSTALLER-install
|
||||
$(MAKE) $(1)
|
||||
endef
|
||||
|
||||
# Prompt user to choose installer and volume deletion for uninstall
|
||||
define prompt-uninstaller
|
||||
@echo "Choose a deployment method:"
|
||||
@echo "1. Docker/Docker-Compose"
|
||||
@echo "2. Kubernetes/Helm"
|
||||
@echo -n "Enter choice: "
|
||||
@read installer_choice; \
|
||||
case $$installer_choice in \
|
||||
1) INSTALLER=docker ;; \
|
||||
2) INSTALLER=k8s ;; \
|
||||
*) echo "Invalid choice" && exit 1 ;; \
|
||||
esac; \
|
||||
if [ "$$INSTALLER" = "docker" ]; then \
|
||||
echo "Delete volumes? (This will remove all data)"; \
|
||||
echo "1. Yes - Delete volumes"; \
|
||||
echo "2. No - Keep volumes"; \
|
||||
echo -n "Enter choice (default: 2): "; \
|
||||
read DELETE_VOLUMES_CHOICE; \
|
||||
$(MAKE) $(1) DELETE_VOLUMES_CHOICE=$$DELETE_VOLUMES_CHOICE; \
|
||||
else \
|
||||
$(MAKE) $(1); \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Generic docker build function
|
||||
# Usage: $(call docker-build,service-name,image-name)
|
||||
define docker-build
|
||||
docker build -t $(2):$(VERSION) . -f scripts/images/$(1)/Dockerfile
|
||||
endef
|
||||
|
||||
# Generic docker compose service action
|
||||
# Usage: $(call docker-compose-service,service-name,action,compose-dir)
|
||||
define docker-compose-service
|
||||
cd $(3) && docker compose $(2) $(1)
|
||||
endef
|
||||
|
||||
# Prompt user to choose whether to delete volumes
|
||||
define prompt-volume-deletion
|
||||
@echo "Delete volumes? (This will remove all data)"
|
||||
@echo "1. Yes - Delete volumes"
|
||||
@echo "2. No - Keep volumes"
|
||||
@echo -n "Enter choice (default: 2): "
|
||||
@read choice; \
|
||||
case $$choice in \
|
||||
1) echo "-v" ;; \
|
||||
*) echo "" ;; \
|
||||
esac
|
||||
endef
|
||||
|
||||
# ========== Build Targets ==========
|
||||
|
||||
# Valid build targets
|
||||
VALID_BUILD_TARGETS := backend database frontend runtime backend-python deer-flow mineru
|
||||
|
||||
# Generic docker build target with service name as parameter
|
||||
# Automatically prefixes image names with "datamate-" unless it's deer-flow
|
||||
.PHONY: %-docker-build
|
||||
%-docker-build:
|
||||
@if ! echo " $(VALID_BUILD_TARGETS) " | grep -q " $* "; then \
|
||||
echo "Error: Unknown build target '$*'"; \
|
||||
echo "Valid build targets are:"; \
|
||||
for target in $(VALID_BUILD_TARGETS); do \
|
||||
echo " - $$target"; \
|
||||
done; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$*" = "deer-flow" ]; then \
|
||||
cp -n runtime/deer-flow/.env.example runtime/deer-flow/.env; \
|
||||
cp -n runtime/deer-flow/conf.yaml.example runtime/deer-flow/conf.yaml; \
|
||||
$(call docker-build,deer-flow-backend,deer-flow-backend); \
|
||||
$(call docker-build,deer-flow-frontend,deer-flow-frontend); \
|
||||
else \
|
||||
$(call docker-build,$*,datamate-$*); \
|
||||
fi
|
||||
|
||||
.PHONY: build
|
||||
build: database-docker-build backend-docker-build frontend-docker-build runtime-docker-build backend-python-docker-build
|
||||
|
||||
# ========== Utility Targets ==========
|
||||
|
||||
.PHONY: create-namespace
|
||||
create-namespace:
|
||||
kubectl get namespace $(NAMESPACE) > /dev/null 2>&1 || kubectl create namespace $(NAMESPACE)
|
||||
|
||||
# ========== Generic Install/Uninstall Targets (Redirect to prompt-installer) ==========
|
||||
|
||||
.PHONY: install-%
|
||||
install-%:
|
||||
ifeq ($(origin INSTALLER), undefined)
|
||||
$(call prompt-installer,$*-$$INSTALLER-install)
|
||||
else
|
||||
$(MAKE) $*-$(INSTALLER)-install
|
||||
endif
|
||||
@@ -45,37 +188,16 @@ endif
|
||||
.PHONY: install
|
||||
install:
|
||||
ifeq ($(origin INSTALLER), undefined)
|
||||
@echo "Choose a deployment method:"
|
||||
@echo "1. Docker/Docker-Compose"
|
||||
@echo "2. Kubernetes/Helm"
|
||||
@echo -n "Enter choice: "
|
||||
@read choice; \
|
||||
case $$choice in \
|
||||
1) INSTALLER=docker ;; \
|
||||
2) INSTALLER=k8s ;; \
|
||||
*) echo "Invalid choice" && exit 1 ;; \
|
||||
esac; \
|
||||
$(MAKE) datamate-$$INSTALLER-install; \
|
||||
$(MAKE) milvus-$$INSTALLER-install
|
||||
$(call prompt-installer,datamate-$$INSTALLER-install milvus-$$INSTALLER-install)
|
||||
else
|
||||
$(MAKE) datamate-$(INSTALLER)-install; \
|
||||
$(MAKE) datamate-$(INSTALLER)-install
|
||||
$(MAKE) milvus-$(INSTALLER)-install
|
||||
endif
|
||||
|
||||
.PHONY: uninstall-%
|
||||
uninstall-%:
|
||||
ifeq ($(origin INSTALLER), undefined)
|
||||
@echo "Choose a deployment method:"
|
||||
@echo "1. Docker/Docker-Compose"
|
||||
@echo "2. Kubernetes/Helm"
|
||||
@echo -n "Enter choice: "
|
||||
@read choice; \
|
||||
case $$choice in \
|
||||
1) INSTALLER=docker ;; \
|
||||
2) INSTALLER=k8s ;; \
|
||||
*) echo "Invalid choice" && exit 1 ;; \
|
||||
esac; \
|
||||
$(MAKE) $*-$$INSTALLER-uninstall
|
||||
$(call prompt-uninstaller,$*-$$INSTALLER-uninstall)
|
||||
else
|
||||
$(MAKE) $*-$(INSTALLER)-uninstall
|
||||
endif
|
||||
@@ -83,157 +205,169 @@ endif
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
ifeq ($(origin INSTALLER), undefined)
|
||||
@echo "Choose a deployment method:"
|
||||
@echo "1. Docker/Docker-Compose"
|
||||
@echo "2. Kubernetes/Helm"
|
||||
@echo -n "Enter choice: "
|
||||
@read choice; \
|
||||
case $$choice in \
|
||||
1) INSTALLER=docker ;; \
|
||||
2) INSTALLER=k8s ;; \
|
||||
*) echo "Invalid choice" && exit 1 ;; \
|
||||
esac; \
|
||||
$(MAKE) milvus-$$INSTALLER-uninstall; \
|
||||
$(MAKE) datamate-$$INSTALLER-uninstall
|
||||
$(call prompt-uninstaller,milvus-$$INSTALLER-uninstall label-studio-$$INSTALLER-uninstall datamate-$$INSTALLER-uninstall)
|
||||
else
|
||||
$(MAKE) milvus-$(INSTALLER)-uninstall; \
|
||||
$(MAKE) datamate-$(INSTALLER)-uninstall
|
||||
@echo "Delete volumes? (This will remove all data)"; \
|
||||
echo "1. Yes - Delete volumes"; \
|
||||
echo "2. No - Keep volumes"; \
|
||||
echo -n "Enter choice (default: 2): "; \
|
||||
read DELETE_VOLUMES_CHOICE; \
|
||||
export DELETE_VOLUMES_CHOICE; \
|
||||
$(MAKE) milvus-$(INSTALLER)-uninstall DELETE_VOLUMES_CHOICE=$$DELETE_VOLUMES_CHOICE; \
|
||||
$(MAKE) label-studio-$(INSTALLER)-uninstall DELETE_VOLUMES_CHOICE=$$DELETE_VOLUMES_CHOICE; \
|
||||
$(MAKE) datamate-$(INSTALLER)-uninstall DELETE_VOLUMES_CHOICE=$$DELETE_VOLUMES_CHOICE
|
||||
endif
|
||||
|
||||
# build
|
||||
.PHONY: backend-docker-build
|
||||
backend-docker-build:
|
||||
docker build -t datamate-backend:$(VERSION) . -f scripts/images/backend/Dockerfile
|
||||
# ========== Docker Install/Uninstall Targets ==========
|
||||
|
||||
.PHONY: database-docker-build
|
||||
database-docker-build:
|
||||
docker build -t datamate-database:$(VERSION) . -f scripts/images/database/Dockerfile
|
||||
# Valid service targets for docker install/uninstall
|
||||
VALID_SERVICE_TARGETS := datamate backend frontend runtime mineru "deer-flow" milvus "label-studio"
|
||||
|
||||
.PHONY: frontend-docker-build
|
||||
frontend-docker-build:
|
||||
docker build -t datamate-frontend:$(VERSION) . -f scripts/images/frontend/Dockerfile
|
||||
|
||||
.PHONY: runtime-docker-build
|
||||
runtime-docker-build:
|
||||
docker build -t datamate-runtime:$(VERSION) . -f scripts/images/runtime/Dockerfile
|
||||
|
||||
.PHONY: backend-python-docker-build
|
||||
backend-python-docker-build:
|
||||
docker build -t datamate-backend-python:$(VERSION) . -f scripts/images/backend-python/Dockerfile
|
||||
|
||||
.PHONY: deer-flow-docker-build
|
||||
deer-flow-docker-build:
|
||||
cp -n runtime/deer-flow/.env.example runtime/deer-flow/.env
|
||||
cp -n runtime/deer-flow/conf.yaml.example runtime/deer-flow/conf.yaml
|
||||
docker build -t deer-flow-backend:$(VERSION) . -f scripts/images/deer-flow-backend/Dockerfile
|
||||
docker build -t deer-flow-frontend:$(VERSION) . -f scripts/images/deer-flow-frontend/Dockerfile
|
||||
|
||||
.PHONY: mineru-docker-build
|
||||
mineru-docker-build:
|
||||
docker build -t datamate-mineru:$(VERSION) . -f scripts/images/mineru/Dockerfile
|
||||
|
||||
.PHONY: backend-docker-install
|
||||
backend-docker-install:
|
||||
cd deployment/docker/datamate && docker compose up -d backend
|
||||
|
||||
.PHONY: backend-docker-uninstall
|
||||
backend-docker-uninstall:
|
||||
cd deployment/docker/datamate && docker compose down backend
|
||||
|
||||
.PHONY: frontend-docker-install
|
||||
frontend-docker-install:
|
||||
cd deployment/docker/datamate && docker compose up -d frontend
|
||||
|
||||
.PHONY: frontend-docker-uninstall
|
||||
frontend-docker-uninstall:
|
||||
cd deployment/docker/datamate && docker compose down frontend
|
||||
|
||||
.PHONY: runtime-docker-install
|
||||
runtime-docker-install:
|
||||
cd deployment/docker/datamate && docker compose up -d runtime
|
||||
|
||||
.PHONY: runtime-docker-uninstall
|
||||
runtime-docker-uninstall:
|
||||
cd deployment/docker/datamate && docker compose down runtime
|
||||
|
||||
.PHONY: mineru-docker-install
|
||||
mineru-docker-install:
|
||||
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose up -d datamate-mineru
|
||||
|
||||
.PHONY: mineru-docker-uninstall
|
||||
mineru-docker-uninstall:
|
||||
cd deployment/docker/datamate && docker compose down datamate-mineru
|
||||
|
||||
.PHONY: mineru-k8s-install
|
||||
mineru-k8s-install: create-namespace
|
||||
kubectl apply -f deployment/kubernetes/mineru/deploy.yaml -n $(NAMESPACE)
|
||||
|
||||
.PHONY: mineru-k8s-uninstall
|
||||
mineru-k8s-uninstall:
|
||||
kubectl delete -f deployment/kubernetes/mineru/deploy.yaml -n $(NAMESPACE)
|
||||
|
||||
.PHONY: datamate-docker-install
|
||||
datamate-docker-install:
|
||||
@if docker compose ls --filter name=deer-flow | grep -q deer-flow; then \
|
||||
# Generic docker service install target
|
||||
.PHONY: %-docker-install
|
||||
%-docker-install:
|
||||
@if ! echo " $(VALID_SERVICE_TARGETS) " | grep -q " $* "; then \
|
||||
echo "Error: Unknown service target '$*'"; \
|
||||
echo "Valid service targets are:"; \
|
||||
for target in $(VALID_SERVICE_TARGETS); do \
|
||||
echo " - $$target"; \
|
||||
done; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$*" = "label-studio" ]; then \
|
||||
$(call docker-compose-service,label-studio,up -d,deployment/docker/label-studio); \
|
||||
elif [ "$*" = "mineru" ]; then \
|
||||
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose up -d datamate-mineru; \
|
||||
elif [ "$*" = "datamate" ]; then \
|
||||
if docker compose ls --filter name=deer-flow | grep -q deer-flow; then \
|
||||
(cd deployment/docker/datamate && NGINX_CONF="./backend-with-deer-flow.conf" REGISTRY=$(REGISTRY) docker compose -f docker-compose.yml up -d) && \
|
||||
$(MAKE) label-studio-docker-install; \
|
||||
else \
|
||||
(cd deployment/docker/datamate && REGISTRY=$(REGISTRY) docker compose -f docker-compose.yml up -d) && \
|
||||
$(MAKE) label-studio-docker-install; \
|
||||
fi; \
|
||||
elif [ "$*" = "deer-flow" ]; then \
|
||||
cd deployment/docker/datamate && export NGINX_CONF="./backend-with-deer-flow.conf" && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
|
||||
cp -n runtime/deer-flow/.env.example runtime/deer-flow/.env; \
|
||||
cp -n runtime/deer-flow/conf.yaml.example runtime/deer-flow/conf.yaml; \
|
||||
cp runtime/deer-flow/.env deployment/docker/deer-flow/.env; \
|
||||
cp runtime/deer-flow/conf.yaml deployment/docker/deer-flow/conf.yaml; \
|
||||
cd deployment/docker/deer-flow && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
|
||||
elif [ "$*" = "milvus" ]; then \
|
||||
cd deployment/docker/milvus && docker compose -f docker-compose.yml up -d; \
|
||||
else \
|
||||
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
|
||||
$(call docker-compose-service,$*,up -d,deployment/docker/datamate); \
|
||||
fi
|
||||
|
||||
.PHONY: datamate-docker-uninstall
|
||||
datamate-docker-uninstall:
|
||||
cd deployment/docker/datamate && docker compose -f docker-compose.yml --profile mineru down -v
|
||||
|
||||
.PHONY: deer-flow-docker-install
|
||||
deer-flow-docker-install:
|
||||
cd deployment/docker/datamate && export NGINX_CONF="./backend-with-deer-flow.conf" && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d
|
||||
cp -n runtime/deer-flow/.env.example runtime/deer-flow/.env
|
||||
cp -n runtime/deer-flow/conf.yaml.example runtime/deer-flow/conf.yaml
|
||||
cp runtime/deer-flow/.env deployment/docker/deer-flow/.env
|
||||
cp runtime/deer-flow/conf.yaml deployment/docker/deer-flow/conf.yaml
|
||||
cd deployment/docker/deer-flow && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d
|
||||
|
||||
.PHONY: deer-flow-docker-uninstall
|
||||
deer-flow-docker-uninstall:
|
||||
@if docker compose ls --filter name=datamate | grep -q datamate; then \
|
||||
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
|
||||
# Generic docker service uninstall target
|
||||
.PHONY: %-docker-uninstall
|
||||
%-docker-uninstall:
|
||||
@if ! echo " $(VALID_SERVICE_TARGETS) " | grep -q " $* "; then \
|
||||
echo "Error: Unknown service target '$*'"; \
|
||||
echo "Valid service targets are:"; \
|
||||
for target in $(VALID_SERVICE_TARGETS); do \
|
||||
echo " - $$target"; \
|
||||
done; \
|
||||
exit 1; \
|
||||
fi
|
||||
cd deployment/docker/deer-flow && docker compose -f docker-compose.yml down
|
||||
|
||||
.PHONY: milvus-docker-install
|
||||
milvus-docker-install:
|
||||
cd deployment/docker/milvus && docker compose -f docker-compose.yml up -d
|
||||
|
||||
.PHONY: milvus-docker-uninstall
|
||||
milvus-docker-uninstall:
|
||||
cd deployment/docker/milvus && docker compose -f docker-compose.yml down
|
||||
|
||||
.PHONY: datamate-k8s-install
|
||||
datamate-k8s-install: create-namespace
|
||||
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --install --set global.image.repository=$(REGISTRY)
|
||||
|
||||
.PHONY: datamate-k8s-uninstall
|
||||
datamate-k8s-uninstall:
|
||||
helm uninstall datamate -n $(NAMESPACE) --ignore-not-found
|
||||
|
||||
.PHONY: deer-flow-k8s-install
|
||||
deer-flow-k8s-install:
|
||||
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --install --set global.deerFlow.enable=true --set global.image.repository=$(REGISTRY)
|
||||
cp runtime/deer-flow/.env deployment/helm/deer-flow/charts/public/.env
|
||||
cp runtime/deer-flow/conf.yaml deployment/helm/deer-flow/charts/public/conf.yaml
|
||||
helm upgrade deer-flow deployment/helm/deer-flow -n $(NAMESPACE) --install --set global.image.repository=$(REGISTRY)
|
||||
|
||||
.PHONY: deer-flow-k8s-uninstall
|
||||
deer-flow-k8s-uninstall:
|
||||
helm uninstall deer-flow -n $(NAMESPACE) --ignore-not-found
|
||||
@if helm ls -n $(NAMESPACE) --filter datamate | grep -q datamate; then \
|
||||
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --set global.deerFlow.enable=false; \
|
||||
@if [ "$*" = "label-studio" ]; then \
|
||||
if [ "$(DELETE_VOLUMES_CHOICE)" = "1" ]; then \
|
||||
cd deployment/docker/label-studio && docker compose down -v; \
|
||||
else \
|
||||
cd deployment/docker/label-studio && docker compose down; \
|
||||
fi; \
|
||||
elif [ "$*" = "mineru" ]; then \
|
||||
$(call docker-compose-service,datamate-mineru,down,deployment/docker/datamate); \
|
||||
elif [ "$*" = "datamate" ]; then \
|
||||
if [ "$(DELETE_VOLUMES_CHOICE)" = "1" ]; then \
|
||||
cd deployment/docker/datamate && docker compose -f docker-compose.yml --profile mineru down -v; \
|
||||
else \
|
||||
cd deployment/docker/datamate && docker compose -f docker-compose.yml --profile mineru down; \
|
||||
fi; \
|
||||
elif [ "$*" = "deer-flow" ]; then \
|
||||
if docker compose ls --filter name=datamate | grep -q datamate; then \
|
||||
cd deployment/docker/datamate && export REGISTRY=$(REGISTRY) && docker compose -f docker-compose.yml up -d; \
|
||||
fi; \
|
||||
cd deployment/docker/deer-flow && docker compose -f docker-compose.yml down; \
|
||||
elif [ "$*" = "milvus" ]; then \
|
||||
if [ "$(DELETE_VOLUMES_CHOICE)" = "1" ]; then \
|
||||
cd deployment/docker/milvus && docker compose -f docker-compose.yml down -v; \
|
||||
else \
|
||||
cd deployment/docker/milvus && docker compose -f docker-compose.yml down; \
|
||||
fi; \
|
||||
else \
|
||||
$(call docker-compose-service,$*,down,deployment/docker/datamate); \
|
||||
fi
|
||||
|
||||
.PHONY: milvus-k8s-install
|
||||
milvus-k8s-install:
|
||||
helm upgrade milvus deployment/helm/milvus -n $(NAMESPACE) --install
|
||||
# ========== Kubernetes Install/Uninstall Targets ==========
|
||||
|
||||
.PHONY: milvus-k8s-uninstall
|
||||
milvus-k8s-uninstall:
|
||||
helm uninstall milvus -n $(NAMESPACE) --ignore-not-found
|
||||
# Valid k8s targets
|
||||
VALID_K8S_TARGETS := mineru datamate deer-flow milvus
|
||||
|
||||
# Generic k8s install target
|
||||
.PHONY: %-k8s-install
|
||||
%-k8s-install: create-namespace
|
||||
@if ! echo " $(VALID_K8S_TARGETS) " | grep -q " $* "; then \
|
||||
echo "Error: Unknown k8s target '$*'"; \
|
||||
echo "Valid k8s targets are:"; \
|
||||
for target in $(VALID_K8S_TARGETS); do \
|
||||
echo " - $$target"; \
|
||||
done; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$*" = "mineru" ]; then \
|
||||
kubectl apply -f deployment/kubernetes/mineru/deploy.yaml -n $(NAMESPACE); \
|
||||
elif [ "$*" = "datamate" ]; then \
|
||||
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --install --set global.image.repository=$(REGISTRY); \
|
||||
elif [ "$*" = "deer-flow" ]; then \
|
||||
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --install --set global.deerFlow.enable=true --set global.image.repository=$(REGISTRY); \
|
||||
cp runtime/deer-flow/.env deployment/helm/deer-flow/charts/public/.env; \
|
||||
cp runtime/deer-flow/conf.yaml deployment/helm/deer-flow/charts/public/conf.yaml; \
|
||||
helm upgrade deer-flow deployment/helm/deer-flow -n $(NAMESPACE) --install --set global.image.repository=$(REGISTRY); \
|
||||
elif [ "$*" = "milvus" ]; then \
|
||||
helm upgrade milvus deployment/helm/milvus -n $(NAMESPACE) --install; \
|
||||
fi
|
||||
|
||||
# Generic k8s uninstall target
|
||||
.PHONY: %-k8s-uninstall
|
||||
%-k8s-uninstall:
|
||||
@if ! echo " $(VALID_K8S_TARGETS) " | grep -q " $* "; then \
|
||||
echo "Error: Unknown k8s target '$*'"; \
|
||||
echo "Valid k8s targets are:"; \
|
||||
for target in $(VALID_K8S_TARGETS); do \
|
||||
echo " - $$target"; \
|
||||
done; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$*" = "mineru" ]; then \
|
||||
kubectl delete -f deployment/kubernetes/mineru/deploy.yaml -n $(NAMESPACE); \
|
||||
elif [ "$*" = "datamate" ]; then \
|
||||
helm uninstall datamate -n $(NAMESPACE) --ignore-not-found; \
|
||||
elif [ "$*" = "deer-flow" ]; then \
|
||||
helm uninstall deer-flow -n $(NAMESPACE) --ignore-not-found; \
|
||||
if helm ls -n $(NAMESPACE) --filter datamate | grep -q datamate; then \
|
||||
helm upgrade datamate deployment/helm/datamate/ -n $(NAMESPACE) --set global.deerFlow.enable=false; \
|
||||
fi; \
|
||||
elif [ "$*" = "milvus" ]; then \
|
||||
helm uninstall milvus -n $(NAMESPACE) --ignore-not-found; \
|
||||
fi
|
||||
|
||||
# ========== Upgrade Targets ==========
|
||||
|
||||
# Valid upgrade targets
|
||||
VALID_UPGRADE_TARGETS := datamate
|
||||
|
||||
# Generic docker upgrade target
|
||||
.PHONY: %-docker-upgrade
|
||||
%-docker-upgrade:
|
||||
@if ! echo " $(VALID_UPGRADE_TARGETS) " | grep -q " $* "; then \
|
||||
echo "Error: Unknown upgrade target '$*'"; \
|
||||
echo "Valid upgrade targets are:"; \
|
||||
for target in $(VALID_UPGRADE_TARGETS); do \
|
||||
echo " - $$target"; \
|
||||
done; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ "$*" = "datamate" ]; then \
|
||||
cd deployment/docker/datamate && docker compose -f docker-compose.yml --profile mineru up -d --force-recreate --remove-orphans; \
|
||||
fi
|
||||
@@ -42,6 +42,8 @@ Choose a deployment method:
|
||||
Enter choice:
|
||||
```
|
||||
|
||||
在运行 `make uninstall` 时,卸载流程会只询问一次是否删除卷(数据),该选择会应用到所有组件。卸载顺序为:milvus -> label-studio -> datamate,确保在移除 datamate 网络前,所有使用该网络的服务已先停止。
|
||||
|
||||
### 拉取代码
|
||||
|
||||
```bash
|
||||
@@ -55,6 +57,12 @@ cd DataMate
|
||||
make install
|
||||
```
|
||||
|
||||
要查看所有可用的 Make 目标、选项和帮助信息,请运行:
|
||||
|
||||
```bash
|
||||
make help
|
||||
```
|
||||
|
||||
### 构建并部署Mineru增强pdf处理
|
||||
```bash
|
||||
make build-mineru
|
||||
|
||||
@@ -45,6 +45,8 @@ Choose a deployment method:
|
||||
Enter choice:
|
||||
```
|
||||
|
||||
When running make uninstall, the installer will prompt once whether to delete volumes; that single choice is applied to all components. The uninstall order is: milvus -> label-studio -> datamate, which ensures the datamate network is removed cleanly after services that use it have stopped.
|
||||
|
||||
### Clone the Code
|
||||
|
||||
```bash
|
||||
@@ -58,6 +60,12 @@ cd DataMate
|
||||
make install
|
||||
```
|
||||
|
||||
To list all available Make targets, flags and help text, run:
|
||||
|
||||
```bash
|
||||
make help
|
||||
```
|
||||
|
||||
### Build and deploy Mineru Enhanced PDF Processing
|
||||
```bash
|
||||
make build-mineru
|
||||
|
||||
Reference in New Issue
Block a user