api_diff / Makefile
kumudraj01's picture
Add application file
2d9b352
Raw
History Blame Contribute Delete
2.49 kB
# 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:
@echo "$(CYAN)Available commands:$(RESET)"
@echo " make build - Build Docker image"
@echo " make run - Run container (builds if image doesn't exist)"
@echo " make stop - Stop running container"
@echo " make remove - Remove container"
@echo " make clean - Remove container and image"
@echo " make logs - View container logs"
@echo " make restart - Restart container"
@echo " make ps - Show container status"
@echo " make test - Run all tests"
@echo " make coverage - Run tests with coverage report"
# Build Docker image
build:
@echo "$(CYAN)Building Docker image...$(RESET)"
docker build -t $(IMAGE_NAME) .
# Run container
run:
@echo "$(CYAN)Checking for existing container...$(RESET)"
@if [ "$$(docker ps -aq -f name=$(CONTAINER_NAME))" ]; then \
echo "$(CYAN)Removing existing container...$(RESET)"; \
docker rm -f $(CONTAINER_NAME) || true; \
fi
@if [ "$$(docker images -q $(IMAGE_NAME) 2> /dev/null)" = "" ]; then \
echo "$(CYAN)Image not found, building first...$(RESET)"; \
make build; \
fi
@echo "$(CYAN)Starting new container...$(RESET)"
docker run -d \
--name $(CONTAINER_NAME) \
-p $(PORT):$(PORT) \
--restart unless-stopped \
$(IMAGE_NAME)
@echo "$(CYAN)Container started! Access the application at http://localhost:$(PORT)$(RESET)"
# Stop container
stop:
@echo "$(CYAN)Stopping container...$(RESET)"
@docker stop $(CONTAINER_NAME) 2>/dev/null || true
# Remove container
remove: stop
@echo "$(CYAN)Removing container...$(RESET)"
@docker rm $(CONTAINER_NAME) 2>/dev/null || true
# Clean everything (container and image)
clean: remove
@echo "$(CYAN)Removing image...$(RESET)"
@docker rmi $(IMAGE_NAME) 2>/dev/null || true
# View container logs
logs:
@echo "$(CYAN)Showing container logs...$(RESET)"
@docker logs -f $(CONTAINER_NAME)
# Restart container
restart: stop run
# Show container status
ps:
@echo "$(CYAN)Container status:$(RESET)"
@docker ps -a --filter name=$(CONTAINER_NAME)
# Run tests
test:
@echo "$(CYAN)Running tests...$(RESET)"
pytest
# Run tests with coverage
coverage:
@echo "$(CYAN)Running tests with coverage...$(RESET)"
pytest --cov=. --cov-report=term-missing