feat: Compose and Nomad deployment
This commit is contained in:
123
Makefile
Normal file
123
Makefile
Normal file
@@ -0,0 +1,123 @@
|
||||
.PHONY: help build push up down logs ps restart clean nomad-start nomad-stop nomad-status nomad-ui nomad-job-run nomad-job-stop nomad-logs
|
||||
|
||||
# Default target
|
||||
help:
|
||||
@echo "SPORE Deployment Makefile"
|
||||
@echo ""
|
||||
@echo "Targets:"
|
||||
@echo " make build - Build all Docker images"
|
||||
@echo " make push - Build and push all Docker images to Docker Hub"
|
||||
@echo " make up - Start all services"
|
||||
@echo " make down - Stop all services"
|
||||
@echo " make logs - View logs from all services"
|
||||
@echo " make ps - Show service status"
|
||||
@echo " make restart - Restart all services"
|
||||
@echo " make clean - Stop services and remove data directory"
|
||||
@echo " make gateway-logs - View gateway logs"
|
||||
@echo " make ledlab-logs - View LEDLab logs"
|
||||
@echo " make registry-logs - View registry logs"
|
||||
@echo " make ui-logs - View UI logs"
|
||||
@echo " make mqtt-logs - View MQTT broker logs"
|
||||
@echo ""
|
||||
@echo "Nomad targets:"
|
||||
@echo " make nomad-start - Start Nomad locally"
|
||||
@echo " make nomad-stop - Stop Nomad"
|
||||
@echo " make nomad-status - Check Nomad status"
|
||||
@echo " make nomad-ui - Open Nomad UI in browser"
|
||||
@echo " make nomad-job-run - Deploy SPORE job to Nomad"
|
||||
@echo " make nomad-job-stop - Stop SPORE job in Nomad"
|
||||
@echo " make nomad-logs - View Nomad job logs"
|
||||
|
||||
# Build all images
|
||||
build:
|
||||
docker compose build
|
||||
|
||||
# Build and push all images to Docker Hub
|
||||
push:
|
||||
@echo "Building and pushing all SPORE images to Docker Hub..."
|
||||
@echo "Building spore-gateway..."
|
||||
@cd ../spore-gateway && make docker-build && make docker-push
|
||||
@echo "Building spore-registry..."
|
||||
@cd ../spore-registry && make docker-build && make docker-push
|
||||
@echo "Building spore-ledlab..."
|
||||
@cd ../spore-ledlab && make docker-build && make docker-push
|
||||
@echo "Building spore-ui..."
|
||||
@cd ../spore-ui && make docker-build && make docker-push
|
||||
@echo "All images pushed successfully!"
|
||||
|
||||
# Start all services
|
||||
up:
|
||||
docker compose up -d
|
||||
|
||||
# Stop all services
|
||||
down:
|
||||
docker compose down
|
||||
|
||||
# View logs
|
||||
logs:
|
||||
docker compose logs -f
|
||||
|
||||
# Show service status
|
||||
ps:
|
||||
docker compose ps
|
||||
|
||||
# Restart all services
|
||||
restart:
|
||||
docker compose restart
|
||||
|
||||
# Clean (stop and remove data)
|
||||
clean:
|
||||
@echo "Stopping services..."
|
||||
@docker compose down
|
||||
@echo "Removing data directory..."
|
||||
@rm -rf ./data/
|
||||
@echo "Clean complete"
|
||||
|
||||
# Service-specific logs
|
||||
gateway-logs:
|
||||
docker compose logs -f gateway
|
||||
|
||||
ledlab-logs:
|
||||
docker compose logs -f ledlab
|
||||
|
||||
registry-logs:
|
||||
docker compose logs -f registry
|
||||
|
||||
ui-logs:
|
||||
docker compose logs -f ui
|
||||
|
||||
mqtt-logs:
|
||||
docker compose logs -f mqtt
|
||||
|
||||
# Nomad targets
|
||||
nomad-start:
|
||||
@echo "Starting Nomad..."
|
||||
@mkdir -p nomad-data
|
||||
@sudo nomad agent -dev -config=./config/nomad/nomad.hcl -data-dir=$(PWD)/nomad-data
|
||||
@sleep 2
|
||||
@echo "Nomad started at http://localhost:4646"
|
||||
|
||||
nomad-stop:
|
||||
@echo "Stopping Nomad..."
|
||||
@pkill -f "nomad agent" || true
|
||||
@echo "Stopped"
|
||||
|
||||
nomad-status:
|
||||
@nomad status || echo "Nomad not running"
|
||||
|
||||
nomad-ui:
|
||||
@echo "Opening Nomad UI at http://localhost:4646"
|
||||
@xdg-open http://localhost:4646 2>/dev/null || open http://localhost:4646 2>/dev/null || echo "Please open http://localhost:4646 in your browser"
|
||||
|
||||
nomad-job-run:
|
||||
@echo "Deploying SPORE job to Nomad..."
|
||||
@nomad job run ./nomad/spore.hcl
|
||||
|
||||
nomad-job-stop:
|
||||
@echo "Stopping SPORE job in Nomad..."
|
||||
@nomad job stop spore
|
||||
|
||||
nomad-logs:
|
||||
@echo "Showing logs for SPORE jobs..."
|
||||
@nomad job logs spore
|
||||
|
||||
Reference in New Issue
Block a user