|
| 1 | +# ======== docker.mk ======== |
| 2 | +# = Docker build and management = |
| 3 | +# ======== docker.mk ======== |
| 4 | + |
| 5 | +# Docker image tags |
| 6 | +DOCKER_REGISTRY ?= ghcr.io/vllm-project/semantic-router |
| 7 | +DOCKER_TAG ?= latest |
| 8 | + |
| 9 | +# Build all Docker images |
| 10 | +docker-build-all: docker-build-extproc docker-build-llm-katan docker-build-precommit |
| 11 | + @$(LOG_TARGET) |
| 12 | + @echo "All Docker images built successfully" |
| 13 | + |
| 14 | +# Build extproc Docker image |
| 15 | +docker-build-extproc: |
| 16 | + @$(LOG_TARGET) |
| 17 | + @echo "Building extproc Docker image..." |
| 18 | + @$(CONTAINER_RUNTIME) build -f Dockerfile.extproc -t $(DOCKER_REGISTRY)/extproc:$(DOCKER_TAG) . |
| 19 | + |
| 20 | +# Build llm-katan Docker image |
| 21 | +docker-build-llm-katan: |
| 22 | + @$(LOG_TARGET) |
| 23 | + @echo "Building llm-katan Docker image..." |
| 24 | + @$(CONTAINER_RUNTIME) build -f e2e-tests/llm-katan/Dockerfile -t $(DOCKER_REGISTRY)/llm-katan:$(DOCKER_TAG) e2e-tests/llm-katan/ |
| 25 | + |
| 26 | +# Build precommit Docker image |
| 27 | +docker-build-precommit: |
| 28 | + @$(LOG_TARGET) |
| 29 | + @echo "Building precommit Docker image..." |
| 30 | + @$(CONTAINER_RUNTIME) build -f Dockerfile.precommit -t $(DOCKER_REGISTRY)/precommit:$(DOCKER_TAG) . |
| 31 | + |
| 32 | +# Test llm-katan Docker image locally |
| 33 | +docker-test-llm-katan: |
| 34 | + @$(LOG_TARGET) |
| 35 | + @echo "Testing llm-katan Docker image..." |
| 36 | + @curl -f http://localhost:8000/v1/models || (echo "Models endpoint failed" && exit 1) |
| 37 | + @echo "\n✅ llm-katan Docker image test passed" |
| 38 | + |
| 39 | +# Run llm-katan Docker image locally |
| 40 | +docker-run-llm-katan: docker-build-llm-katan |
| 41 | + @$(LOG_TARGET) |
| 42 | + @echo "Running llm-katan Docker image on port 8000..." |
| 43 | + @echo "Access the server at: http://localhost:8000" |
| 44 | + @echo "Press Ctrl+C to stop" |
| 45 | + @$(CONTAINER_RUNTIME) run --rm -p 8000:8000 $(DOCKER_REGISTRY)/llm-katan:$(DOCKER_TAG) |
| 46 | + |
| 47 | +# Run llm-katan with custom served model name |
| 48 | +docker-run-llm-katan-custom: |
| 49 | + @$(LOG_TARGET) |
| 50 | + @echo "Running llm-katan with custom served model name..." |
| 51 | + @echo "Usage: make docker-run-llm-katan-custom SERVED_NAME=your-served-model-name" |
| 52 | + @if [ -z "$(SERVED_NAME)" ]; then \ |
| 53 | + echo "Error: SERVED_NAME variable is required"; \ |
| 54 | + echo "Example: make docker-run-llm-katan-custom SERVED_NAME=claude-3-haiku"; \ |
| 55 | + exit 1; \ |
| 56 | + fi |
| 57 | + @$(CONTAINER_RUNTIME) run --rm -p 8000:8000 $(DOCKER_REGISTRY)/llm-katan:$(DOCKER_TAG) \ |
| 58 | + llm-katan --model "Qwen/Qwen3-0.6B" --served-model-name "$(SERVED_NAME)" --host 0.0.0.0 --port 8000 |
| 59 | + |
| 60 | +# Clean up Docker images |
| 61 | +docker-clean: |
| 62 | + @$(LOG_TARGET) |
| 63 | + @echo "Cleaning up Docker images..." |
| 64 | + @$(CONTAINER_RUNTIME) image prune -f |
| 65 | + @echo "Docker cleanup completed" |
| 66 | + |
| 67 | +# Push Docker images (for CI/CD) |
| 68 | +docker-push-all: docker-push-extproc docker-push-llm-katan |
| 69 | + @$(LOG_TARGET) |
| 70 | + @echo "All Docker images pushed successfully" |
| 71 | + |
| 72 | +docker-push-extproc: |
| 73 | + @$(LOG_TARGET) |
| 74 | + @echo "Pushing extproc Docker image..." |
| 75 | + @$(CONTAINER_RUNTIME) push $(DOCKER_REGISTRY)/extproc:$(DOCKER_TAG) |
| 76 | + |
| 77 | +docker-push-llm-katan: |
| 78 | + @$(LOG_TARGET) |
| 79 | + @echo "Pushing llm-katan Docker image..." |
| 80 | + @$(CONTAINER_RUNTIME) push $(DOCKER_REGISTRY)/llm-katan:$(DOCKER_TAG) |
| 81 | + |
| 82 | +# Docker compose shortcuts |
| 83 | +docker-compose-up: |
| 84 | + @$(LOG_TARGET) |
| 85 | + @echo "Starting services with docker-compose..." |
| 86 | + @docker compose up --build |
| 87 | + |
| 88 | +docker-compose-up-testing: |
| 89 | + @$(LOG_TARGET) |
| 90 | + @echo "Starting services with testing profile..." |
| 91 | + @docker compose --profile testing up --build |
| 92 | + |
| 93 | +docker-compose-up-llm-katan: |
| 94 | + @$(LOG_TARGET) |
| 95 | + @echo "Starting services with llm-katan profile..." |
| 96 | + @docker compose --profile llm-katan up --build |
| 97 | + |
| 98 | +docker-compose-down: |
| 99 | + @$(LOG_TARGET) |
| 100 | + @echo "Stopping docker-compose services..." |
| 101 | + @docker compose down |
| 102 | + |
| 103 | +# Help target for Docker commands |
| 104 | +docker-help: |
| 105 | + @echo "Docker Make Targets:" |
| 106 | + @echo " docker-build-all - Build all Docker images" |
| 107 | + @echo " docker-build-extproc - Build extproc Docker image" |
| 108 | + @echo " docker-build-llm-katan - Build llm-katan Docker image" |
| 109 | + @echo " docker-build-precommit - Build precommit Docker image" |
| 110 | + @echo " docker-test-llm-katan - Test llm-katan Docker image" |
| 111 | + @echo " docker-run-llm-katan - Run llm-katan Docker image locally" |
| 112 | + @echo " docker-run-llm-katan-custom SERVED_NAME=name - Run with custom served model name" |
| 113 | + @echo " docker-clean - Clean up Docker images" |
| 114 | + @echo " docker-compose-up - Start docker-compose services" |
| 115 | + @echo " docker-compose-up-testing - Start with testing profile" |
| 116 | + @echo " docker-compose-up-llm-katan - Start with llm-katan profile" |
| 117 | + @echo " docker-compose-down - Stop docker-compose services" |
| 118 | + @echo "" |
| 119 | + @echo "Environment Variables:" |
| 120 | + @echo " DOCKER_REGISTRY - Docker registry (default: ghcr.io/vllm-project/semantic-router)" |
| 121 | + @echo " DOCKER_TAG - Docker tag (default: latest)" |
| 122 | + @echo " SERVED_NAME - Served model name for custom runs" |
0 commit comments