131 lines
3.2 KiB
Makefile
131 lines
3.2 KiB
Makefile
.PHONY: all run build clean test deps install docker-build docker-up docker-down docker-logs docker-restart docker-clean help
|
|
|
|
# Default target: build and start with Docker
|
|
all: docker-up
|
|
|
|
# Run the application locally
|
|
run:
|
|
go run main.go
|
|
|
|
# Build the binary locally
|
|
build:
|
|
go build -o mealprep main.go
|
|
|
|
# Install dependencies
|
|
deps:
|
|
go mod tidy
|
|
go mod download
|
|
|
|
# Clean build artifacts and database
|
|
clean:
|
|
rm -f mealprep mealprep.db
|
|
|
|
# Clean only database (for fresh start)
|
|
clean-db:
|
|
rm -f mealprep.db
|
|
|
|
# Run with auto-reload (requires air: go install github.com/cosmtrek/air@latest)
|
|
dev:
|
|
air
|
|
|
|
# Test the application
|
|
test:
|
|
go test ./...
|
|
|
|
# Install the binary to GOPATH
|
|
install:
|
|
go install
|
|
|
|
# Docker: Build the Docker image
|
|
docker-build:
|
|
docker build -t mealprep:latest .
|
|
|
|
# Docker: Build and start containers
|
|
docker-up:
|
|
docker compose up -d
|
|
|
|
# Docker: Build and start with logs
|
|
docker-up-logs:
|
|
docker compose up --build
|
|
|
|
# Docker: Stop and remove containers
|
|
docker-down:
|
|
docker compose down
|
|
|
|
# Docker: View logs
|
|
docker-logs:
|
|
docker compose logs -f
|
|
|
|
# Docker: Restart containers
|
|
docker-restart:
|
|
docker compose restart
|
|
|
|
# Docker: Stop containers
|
|
docker-stop:
|
|
docker compose stop
|
|
|
|
# Docker: Start containers
|
|
docker-start:
|
|
docker compose start
|
|
|
|
# Docker: Clean everything (containers, volumes, images)
|
|
docker-clean:
|
|
docker compose down -v
|
|
docker rmi mealprep:latest 2>/dev/null || true
|
|
|
|
# Docker: Rebuild and restart
|
|
docker-rebuild:
|
|
docker compose down
|
|
docker compose build --no-cache
|
|
docker compose up -d
|
|
|
|
# Docker: Shell into container
|
|
docker-shell:
|
|
docker exec -it mealprep-app /bin/sh
|
|
|
|
# Docker: Show container status
|
|
docker-status:
|
|
docker compose ps
|
|
|
|
# Deploy: Build and deploy to production
|
|
deploy: docker-build
|
|
@echo "Building and deploying to Docker server..."
|
|
docker compose up -d --build
|
|
@echo "Deployment complete!"
|
|
|
|
# Show help
|
|
help:
|
|
@echo "Available targets:"
|
|
@echo ""
|
|
@echo "Default:"
|
|
@echo " make / all - Build and start with Docker (default)"
|
|
@echo ""
|
|
@echo "Local Development:"
|
|
@echo " run - Run the application locally"
|
|
@echo " build - Build the binary locally"
|
|
@echo " deps - Install dependencies"
|
|
@echo " clean - Remove binary and database"
|
|
@echo " clean-db - Remove only database"
|
|
@echo " dev - Run with auto-reload (requires air)"
|
|
@echo " test - Run tests"
|
|
@echo " install - Install binary to GOPATH"
|
|
@echo ""
|
|
@echo "Docker Commands:"
|
|
@echo " docker-build - Build the Docker image"
|
|
@echo " docker-up - Build and start containers in background"
|
|
@echo " docker-up-logs - Build and start with logs attached"
|
|
@echo " docker-down - Stop and remove containers"
|
|
@echo " docker-logs - View container logs"
|
|
@echo " docker-restart - Restart containers"
|
|
@echo " docker-stop - Stop containers"
|
|
@echo " docker-start - Start stopped containers"
|
|
@echo " docker-clean - Remove everything (containers, volumes, images)"
|
|
@echo " docker-rebuild - Rebuild from scratch and start"
|
|
@echo " docker-shell - Open shell in container"
|
|
@echo " docker-status - Show container status"
|
|
@echo ""
|
|
@echo "Deployment:"
|
|
@echo " deploy - Build and deploy to production"
|
|
@echo ""
|
|
@echo " help - Show this help message"
|