manim-mcp / Makefile.sandbox
bhaveshgoel07's picture
Deploy code fixes (clean history)
fff13d1
# Makefile for Blaxel Manim Sandbox
IMAGE_NAME = manim-sandbox
CONTAINER_NAME = manim-sandbox-test
PORT = 8080
.PHONY: build run stop clean test logs help
# Default target
help:
@echo "Blaxel Manim Sandbox Makefile"
@echo ""
@echo "Available targets:"
@echo " build - Build the Docker image"
@echo " run - Run the container locally"
@echo " stop - Stop the running container"
@echo " clean - Remove container and image"
@echo " test - Test the sandbox API"
@echo " logs - View container logs"
@echo " shell - Open shell in running container"
@echo " deploy - Deploy to Blaxel (requires bl CLI)"
# Build the Docker image
build:
@echo "Building Docker image..."
docker build -f Dockerfile.sandbox -t $(IMAGE_NAME) .
@echo "Build complete!"
# Run the container locally
run:
@echo "Starting container..."
docker run -d \
--name $(CONTAINER_NAME) \
-p $(PORT):8080 \
$(IMAGE_NAME)
@echo "Container started on port $(PORT)"
@echo "Sandbox API available at http://localhost:$(PORT)"
# Stop the container
stop:
@echo "Stopping container..."
-docker stop $(CONTAINER_NAME)
-docker rm $(CONTAINER_NAME)
@echo "Container stopped"
# Clean up everything
clean: stop
@echo "Removing image..."
-docker rmi $(IMAGE_NAME)
@echo "Cleanup complete"
# Test the sandbox API
test:
@echo "Testing sandbox API..."
@echo ""
@echo "1. Health check:"
curl -s http://localhost:$(PORT)/health || echo "Failed"
@echo ""
@echo ""
@echo "2. Testing Manim installation:"
curl -s -X POST http://localhost:$(PORT)/process \
-H "Content-Type: application/json" \
-d '{"command": "manim --version", "waitForCompletion": true}' | jq '.' || echo "Failed"
@echo ""
@echo "3. Testing FFmpeg installation:"
curl -s -X POST http://localhost:$(PORT)/process \
-H "Content-Type: application/json" \
-d '{"command": "ffmpeg -version", "waitForCompletion": true}' | jq '.' || echo "Failed"
# View container logs
logs:
docker logs -f $(CONTAINER_NAME)
# Open shell in running container
shell:
docker exec -it $(CONTAINER_NAME) /bin/bash
# Deploy to Blaxel
deploy:
@echo "Deploying to Blaxel..."
bl deploy
@echo "Deployment complete!"
@echo "Check status with: bl get sandbox manim-sandbox --watch"
# Rebuild and run (convenience target)
rebuild: clean build run
@echo "Rebuild complete and container running"