generateMakefile static method
Implementation
static String generateMakefile(String projectName) {
return '''
.PHONY: help build run stop clean dev logs restart
# Default target
help:
\t@echo "Available commands:"
\t@echo " make build - Build Docker image"
\t@echo " make run - Run production containers"
\t@echo " make dev - Run development server with hot reload"
\t@echo " make stop - Stop all containers"
\t@echo " make clean - Remove containers and images"
\t@echo " make logs - Show container logs"
\t@echo " make restart - Restart containers"
\t@echo " make shell - Open shell in web container"
\t@echo " make db-shell - Open PostgreSQL shell"
# Build Docker image
build:
\t@echo "Building Docker image..."
\tdocker-compose build
# Run production containers
run:
\t@echo "Starting production containers..."
\tdocker-compose up -d
# Run development server
dev:
\t@echo "Starting development server..."
\tdocker-compose --profile dev up dev
# Stop all containers
stop:
\t@echo "Stopping containers..."
\tdocker-compose down
# Clean up containers and images
clean:
\t@echo "Cleaning up..."
\tdocker-compose down -v
\tdocker system prune -f
# Show logs
logs:
\tdocker-compose logs -f
# Restart containers
restart:
\t@echo "Restarting containers..."
\tdocker-compose restart
# Open shell in web container
shell:
\tdocker exec -it ${projectName}_web sh
# Open PostgreSQL shell
db-shell:
\tdocker exec -it ${projectName}_postgres psql -U postgres -d ${projectName}_db
# Run flutter pub get
pub-get:
\tdocker-compose run --rm web flutter pub get
# Build web release
build-web:
\tdocker-compose run --rm web flutter build web --release
''';
}