forked from gsn/predictor
122 lines
No EOL
2.8 KiB
Makefile
122 lines
No EOL
2.8 KiB
Makefile
# Variables
|
|
IMAGE_NAME = predictor
|
|
TAG = latest
|
|
COMPOSE_FILE = docker-compose.yml
|
|
|
|
# Validate Docker configuration
|
|
.PHONY: validate-docker
|
|
validate-docker:
|
|
./scripts/validate-docker.sh
|
|
|
|
# Build the Docker image
|
|
.PHONY: build
|
|
build:
|
|
docker build -t $(IMAGE_NAME):$(TAG) .
|
|
|
|
# Run the application with docker-compose
|
|
.PHONY: up
|
|
up:
|
|
docker-compose -f $(COMPOSE_FILE) up -d
|
|
|
|
# Run the application with docker-compose and rebuild
|
|
.PHONY: up-build
|
|
up-build:
|
|
docker-compose -f $(COMPOSE_FILE) up -d --build
|
|
|
|
# Stop the application
|
|
.PHONY: down
|
|
down:
|
|
docker-compose -f $(COMPOSE_FILE) down
|
|
|
|
# Stop the application and remove volumes
|
|
.PHONY: down-volumes
|
|
down-volumes:
|
|
docker-compose -f $(COMPOSE_FILE) down -v
|
|
|
|
# View logs
|
|
.PHONY: logs
|
|
logs:
|
|
docker-compose -f $(COMPOSE_FILE) logs -f
|
|
|
|
# View logs for specific service
|
|
.PHONY: logs-predictor
|
|
logs-predictor:
|
|
docker-compose -f $(COMPOSE_FILE) logs -f predictor
|
|
|
|
# View logs for Redis
|
|
.PHONY: logs-redis
|
|
logs-redis:
|
|
docker-compose -f $(COMPOSE_FILE) logs -f redis
|
|
|
|
# Check service status
|
|
.PHONY: ps
|
|
ps:
|
|
docker-compose -f $(COMPOSE_FILE) ps
|
|
|
|
# Execute command in predictor container
|
|
.PHONY: exec
|
|
exec:
|
|
docker-compose -f $(COMPOSE_FILE) exec predictor sh
|
|
|
|
# Execute command in Redis container
|
|
.PHONY: exec-redis
|
|
exec-redis:
|
|
docker-compose -f $(COMPOSE_FILE) exec redis sh
|
|
|
|
# Clean up Docker resources
|
|
.PHONY: clean
|
|
clean:
|
|
docker-compose -f $(COMPOSE_FILE) down -v --rmi all
|
|
docker system prune -f
|
|
|
|
# Run tests
|
|
.PHONY: test
|
|
test:
|
|
go test ./...
|
|
|
|
# Build locally
|
|
.PHONY: build-local
|
|
build-local:
|
|
go build -o predictor ./cmd/api
|
|
|
|
# Run locally (requires Redis)
|
|
.PHONY: run-local
|
|
run-local:
|
|
cd cmd/api && go run .
|
|
|
|
# Format code
|
|
.PHONY: fmt
|
|
fmt:
|
|
go fmt ./...
|
|
|
|
# Lint code
|
|
.PHONY: lint
|
|
lint:
|
|
golangci-lint run
|
|
|
|
# Show help
|
|
.PHONY: help
|
|
help:
|
|
@echo "Available commands:"
|
|
@echo " validate-docker - Validate Docker configuration"
|
|
@echo " build - Build Docker image"
|
|
@echo " up - Start services with docker-compose"
|
|
@echo " up-build - Start services and rebuild images"
|
|
@echo " down - Stop services"
|
|
@echo " down-volumes - Stop services and remove volumes"
|
|
@echo " logs - View all logs"
|
|
@echo " logs-predictor - View predictor logs"
|
|
@echo " logs-redis - View Redis logs"
|
|
@echo " ps - Show service status"
|
|
@echo " exec - Execute shell in predictor container"
|
|
@echo " exec-redis - Execute shell in Redis container"
|
|
@echo " clean - Clean up Docker resources"
|
|
@echo " test - Run tests"
|
|
@echo " build-local - Build locally"
|
|
@echo " run-local - Run locally (requires Redis)"
|
|
@echo " fmt - Format code"
|
|
@echo " lint - Lint code"
|
|
@echo " help - Show this help"
|
|
|
|
generate-ogen:
|
|
go run github.com/ogen-go/ogen/cmd/ogen@latest --target pkg/rest -package gsn --clean api/rest/predictor.swagger.yml
|