From b14119b5318a86660041b698a312d051999dc01e Mon Sep 17 00:00:00 2001 From: -LAN- Date: Tue, 2 Sep 2025 16:24:21 +0800 Subject: [PATCH] feat: add development environment setup commands to Makefile (#24976) --- Makefile | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index ff61a0031..388c367fd 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,48 @@ WEB_IMAGE=$(DOCKER_REGISTRY)/dify-web API_IMAGE=$(DOCKER_REGISTRY)/dify-api VERSION=latest +# Backend Development Environment Setup +.PHONY: dev-setup prepare-docker prepare-web prepare-api + +# Default dev setup target +dev-setup: prepare-docker prepare-web prepare-api + @echo "✅ Backend development environment setup complete!" + +# Step 1: Prepare Docker middleware +prepare-docker: + @echo "🐳 Setting up Docker middleware..." + @cp -n docker/middleware.env.example docker/middleware.env 2>/dev/null || echo "Docker middleware.env already exists" + @cd docker && docker compose -f docker-compose.middleware.yaml --env-file middleware.env -p dify-middlewares-dev up -d + @echo "✅ Docker middleware started" + +# Step 2: Prepare web environment +prepare-web: + @echo "🌐 Setting up web environment..." + @cp -n web/.env.example web/.env 2>/dev/null || echo "Web .env already exists" + @cd web && pnpm install + @cd web && pnpm build + @echo "✅ Web environment prepared (not started)" + +# Step 3: Prepare API environment +prepare-api: + @echo "🔧 Setting up API environment..." + @cp -n api/.env.example api/.env 2>/dev/null || echo "API .env already exists" + @cd api && uv sync --dev --extra all + @cd api && uv run flask db upgrade + @echo "✅ API environment prepared (not started)" + +# Clean dev environment +dev-clean: + @echo "⚠️ Stopping Docker containers..." + @cd docker && docker compose -f docker-compose.middleware.yaml --env-file middleware.env -p dify-middlewares-dev down + @echo "🗑️ Removing volumes..." + @rm -rf docker/volumes/db + @rm -rf docker/volumes/redis + @rm -rf docker/volumes/plugin_daemon + @rm -rf docker/volumes/weaviate + @rm -rf api/storage + @echo "✅ Cleanup complete" + # Build Docker images build-web: @echo "Building web Docker image: $(WEB_IMAGE):$(VERSION)..." @@ -39,5 +81,21 @@ build-push-web: build-web push-web build-push-all: build-all push-all @echo "All Docker images have been built and pushed." +# Help target +help: + @echo "Development Setup Targets:" + @echo " make dev-setup - Run all setup steps for backend dev environment" + @echo " make prepare-docker - Set up Docker middleware" + @echo " make prepare-web - Set up web environment" + @echo " make prepare-api - Set up API environment" + @echo " make dev-clean - Stop Docker middleware containers" + @echo "" + @echo "Docker Build Targets:" + @echo " make build-web - Build web Docker image" + @echo " make build-api - Build API Docker image" + @echo " make build-all - Build all Docker images" + @echo " make push-all - Push all Docker images" + @echo " make build-push-all - Build and push all Docker images" + # Phony targets -.PHONY: build-web build-api push-web push-api build-all push-all build-push-all +.PHONY: build-web build-api push-web push-api build-all push-all build-push-all dev-setup prepare-docker prepare-web prepare-api dev-clean help