generated from theradcoza/Laravel-Docker-Dev-Template
Initial commit
This commit is contained in:
176
Makefile
Normal file
176
Makefile
Normal file
@@ -0,0 +1,176 @@
|
||||
# Laravel Docker Development Makefile
|
||||
|
||||
.PHONY: help install up down restart build logs shell composer artisan npm test fresh
|
||||
|
||||
# Database profile (default: mysql)
|
||||
DB ?= mysql
|
||||
|
||||
# Default target
|
||||
help:
|
||||
@echo "Laravel Docker Development Commands"
|
||||
@echo "===================================="
|
||||
@echo ""
|
||||
@echo "Setup:"
|
||||
@echo " make install DB=mysql - First-time setup with MySQL"
|
||||
@echo " make install DB=pgsql - First-time setup with PostgreSQL"
|
||||
@echo " make install DB=sqlite - First-time setup with SQLite"
|
||||
@echo " make build - Build Docker images"
|
||||
@echo ""
|
||||
@echo "Docker (use DB=mysql|pgsql|sqlite):"
|
||||
@echo " make up - Start containers (default: MySQL)"
|
||||
@echo " make up DB=pgsql - Start with PostgreSQL"
|
||||
@echo " make up DB=sqlite - Start with SQLite"
|
||||
@echo " make down - Stop all containers"
|
||||
@echo " make restart - Restart all containers"
|
||||
@echo " make logs - View container logs"
|
||||
@echo ""
|
||||
@echo "Development:"
|
||||
@echo " make shell - Open shell in app container"
|
||||
@echo " make composer - Run composer (use: make composer cmd='install')"
|
||||
@echo " make artisan - Run artisan (use: make artisan cmd='migrate')"
|
||||
@echo " make npm - Run npm (use: make npm cmd='install')"
|
||||
@echo " make tinker - Open Laravel Tinker"
|
||||
@echo ""
|
||||
@echo "Database:"
|
||||
@echo " make migrate - Run migrations"
|
||||
@echo " make fresh - Fresh migrate with seeders"
|
||||
@echo " make seed - Run database seeders"
|
||||
@echo ""
|
||||
@echo "Testing:"
|
||||
@echo " make test - Run PHPUnit tests"
|
||||
@echo " make test-coverage - Run tests with coverage"
|
||||
@echo ""
|
||||
@echo "Frontend:"
|
||||
@echo " make vite - Start Vite dev server"
|
||||
@echo " make build-assets - Build frontend assets"
|
||||
|
||||
# Setup
|
||||
install: build
|
||||
@echo "Creating Laravel project..."
|
||||
docker-compose --profile $(DB) run --rm app composer create-project laravel/laravel .
|
||||
@echo "Setting up environment for $(DB)..."
|
||||
cp src/.env.$(DB) src/.env || cp src/.env.example src/.env
|
||||
docker-compose --profile $(DB) run --rm app php artisan key:generate
|
||||
@echo ""
|
||||
@echo "Installation complete!"
|
||||
@echo "Run 'make up DB=$(DB)' to start with $(DB) database."
|
||||
|
||||
build:
|
||||
docker-compose build
|
||||
|
||||
# Docker commands
|
||||
up:
|
||||
docker-compose --profile $(DB) up -d
|
||||
@echo "Started with $(DB) database profile."
|
||||
|
||||
down:
|
||||
docker-compose --profile mysql --profile pgsql --profile sqlite down
|
||||
|
||||
restart:
|
||||
docker-compose --profile $(DB) restart
|
||||
|
||||
logs:
|
||||
docker-compose logs -f
|
||||
|
||||
# Development
|
||||
shell:
|
||||
docker-compose exec app bash
|
||||
|
||||
composer:
|
||||
docker-compose exec app composer $(cmd)
|
||||
|
||||
artisan:
|
||||
docker-compose exec app php artisan $(cmd)
|
||||
|
||||
npm:
|
||||
docker-compose run --rm node npm $(cmd)
|
||||
|
||||
tinker:
|
||||
docker-compose exec app php artisan tinker
|
||||
|
||||
# Database
|
||||
migrate:
|
||||
docker-compose exec app php artisan migrate
|
||||
|
||||
fresh:
|
||||
docker-compose exec app php artisan migrate:fresh --seed
|
||||
|
||||
seed:
|
||||
docker-compose exec app php artisan db:seed
|
||||
|
||||
# Testing (Pest)
|
||||
test:
|
||||
docker-compose exec app php artisan test
|
||||
|
||||
test-coverage:
|
||||
docker-compose exec app php artisan test --coverage
|
||||
|
||||
test-filter:
|
||||
docker-compose exec app php artisan test --filter=$(filter)
|
||||
|
||||
test-module:
|
||||
docker-compose exec app php artisan test tests/Modules/$(module)
|
||||
|
||||
test-parallel:
|
||||
docker-compose exec app php artisan test --parallel
|
||||
|
||||
# Code Quality
|
||||
lint:
|
||||
docker-compose exec app ./vendor/bin/pint
|
||||
|
||||
lint-check:
|
||||
docker-compose exec app ./vendor/bin/pint --test
|
||||
|
||||
# Frontend
|
||||
vite:
|
||||
docker-compose run --rm --service-ports node npm run dev
|
||||
|
||||
build-assets:
|
||||
docker-compose run --rm node npm run build
|
||||
|
||||
# Post-install (run after Laravel is installed)
|
||||
setup-tools:
|
||||
docker-compose exec app bash -c "cd /var/www/html && bash /var/www/html/../scripts/post-install.sh"
|
||||
|
||||
# Laravel base setup (auth, API, middleware)
|
||||
setup-laravel:
|
||||
docker-compose exec app bash -c "cd /var/www/html && bash /var/www/html/../scripts/laravel-setup.sh"
|
||||
|
||||
# Full setup (tools + laravel)
|
||||
setup-all: setup-tools setup-laravel
|
||||
|
||||
# Queue Worker
|
||||
queue-start:
|
||||
docker-compose --profile queue up -d queue
|
||||
|
||||
queue-stop:
|
||||
docker-compose stop queue
|
||||
|
||||
queue-restart:
|
||||
docker-compose restart queue
|
||||
|
||||
queue-logs:
|
||||
docker-compose logs -f queue
|
||||
|
||||
# Scheduler
|
||||
scheduler-start:
|
||||
docker-compose --profile scheduler up -d scheduler
|
||||
|
||||
scheduler-stop:
|
||||
docker-compose stop scheduler
|
||||
|
||||
# Database Backup/Restore
|
||||
backup:
|
||||
@bash scripts/backup.sh
|
||||
|
||||
restore:
|
||||
@bash scripts/restore.sh $(file)
|
||||
|
||||
# Health Check
|
||||
health:
|
||||
docker-compose exec app php artisan health:check
|
||||
|
||||
# Cleanup
|
||||
clean:
|
||||
docker-compose down -v --remove-orphans
|
||||
docker system prune -f
|
||||
Reference in New Issue
Block a user