Spaces:
Sleeping
Sleeping
| # Docker image and container configuration | |
| IMAGE_NAME = api-comparator | |
| CONTAINER_NAME = api-comparator-app | |
| PORT = 5001 | |
| # Colors for terminal output | |
| CYAN = \033[0;36m | |
| RESET = \033[0m | |
| .PHONY: help build run stop remove clean logs restart ps test lint coverage | |
| # Display help information | |
| help: | |
| "$(CYAN)Available commands:$(RESET)" | |
| " make build - Build Docker image" | |
| " make run - Run container (builds if image doesn't exist)" | |
| " make stop - Stop running container" | |
| " make remove - Remove container" | |
| " make clean - Remove container and image" | |
| " make logs - View container logs" | |
| " make restart - Restart container" | |
| " make ps - Show container status" | |
| " make test - Run all tests" | |
| " make coverage - Run tests with coverage report" | |
| # Build Docker image | |
| build: | |
| "$(CYAN)Building Docker image...$(RESET)" | |
| docker build -t $(IMAGE_NAME) . | |
| # Run container | |
| run: | |
| "$(CYAN)Checking for existing container...$(RESET)" | |
| [ "$$(docker ps -aq -f name=$(CONTAINER_NAME))" ]; then \ | |
| echo "$(CYAN)Removing existing container...$(RESET)"; \ | |
| docker rm -f $(CONTAINER_NAME) || true; \ | |
| fi | |
| [ "$$(docker images -q $(IMAGE_NAME) 2> /dev/null)" = "" ]; then \ | |
| echo "$(CYAN)Image not found, building first...$(RESET)"; \ | |
| make build; \ | |
| fi | |
| "$(CYAN)Starting new container...$(RESET)" | |
| docker run -d \ | |
| --name $(CONTAINER_NAME) \ | |
| -p $(PORT):$(PORT) \ | |
| --restart unless-stopped \ | |
| $(IMAGE_NAME) | |
| "$(CYAN)Container started! Access the application at http://localhost:$(PORT)$(RESET)" | |
| # Stop container | |
| stop: | |
| "$(CYAN)Stopping container...$(RESET)" | |
| stop $(CONTAINER_NAME) 2>/dev/null || true | |
| # Remove container | |
| remove: stop | |
| "$(CYAN)Removing container...$(RESET)" | |
| rm $(CONTAINER_NAME) 2>/dev/null || true | |
| # Clean everything (container and image) | |
| clean: remove | |
| "$(CYAN)Removing image...$(RESET)" | |
| rmi $(IMAGE_NAME) 2>/dev/null || true | |
| # View container logs | |
| logs: | |
| "$(CYAN)Showing container logs...$(RESET)" | |
| logs -f $(CONTAINER_NAME) | |
| # Restart container | |
| restart: stop run | |
| # Show container status | |
| ps: | |
| "$(CYAN)Container status:$(RESET)" | |
| ps -a --filter name=$(CONTAINER_NAME) | |
| # Run tests | |
| test: | |
| "$(CYAN)Running tests...$(RESET)" | |
| pytest | |
| # Run tests with coverage | |
| coverage: | |
| "$(CYAN)Running tests with coverage...$(RESET)" | |
| pytest --cov=. --cov-report=term-missing | |