|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # Variables
- DOCKER_REGISTRY=langgenius
- 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
- @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)..."
- docker build -t $(WEB_IMAGE):$(VERSION) ./web
- @echo "Web Docker image built successfully: $(WEB_IMAGE):$(VERSION)"
-
- build-api:
- @echo "Building API Docker image: $(API_IMAGE):$(VERSION)..."
- docker build -t $(API_IMAGE):$(VERSION) ./api
- @echo "API Docker image built successfully: $(API_IMAGE):$(VERSION)"
-
- # Push Docker images
- push-web:
- @echo "Pushing web Docker image: $(WEB_IMAGE):$(VERSION)..."
- docker push $(WEB_IMAGE):$(VERSION)
- @echo "Web Docker image pushed successfully: $(WEB_IMAGE):$(VERSION)"
-
- push-api:
- @echo "Pushing API Docker image: $(API_IMAGE):$(VERSION)..."
- docker push $(API_IMAGE):$(VERSION)
- @echo "API Docker image pushed successfully: $(API_IMAGE):$(VERSION)"
-
- # Build all images
- build-all: build-web build-api
-
- # Push all images
- push-all: push-web push-api
-
- build-push-api: build-api push-api
- build-push-web: build-web push-web
-
- # Build and push all images
- 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 dev-setup prepare-docker prepare-web prepare-api dev-clean help
|