Files
michaelschiemer/Makefile

108 lines
2.7 KiB
Makefile

# ----------------------------------
# Projekt: michaelschiemer.de
# Docker & Ansible Makefile
# ----------------------------------
PROJECT_NAME = michaelschiemer
ENV ?= dev
# Standart Docker Compose Befehle
up: ## Startet alle Docker-Container
./bin/up
down: ## Stoppt alle Container
./bin/down
build:
docker compose build
restart: ## Neustart aller Container
./bin/restart
logs: ## Zeigt Logs aus Docker
docker compose logs -f
ps: ## Docker PS
docker compose ps
reload: ## Dump Autoload & Restart PHP
docker-compose exec php composer dump-autoload -o
docker-compose restart php
# Wähle dev- oder prod-PHP-Konfig je nach ENV
phpinfo:
@echo "Aktive PHP-Konfiguration: php.$(ENV).ini"
# Ansible Deployment
setup: ## Führt Ansible Setup aus
./bin/setup
deploy: ## Führt Ansible Deploy aus
./bin/deploy
test: ## Führt Tests aus (Platzhalter)
./bin/test
# Cleanup temporärer/metadaten-Dateien
clean: ## Entfernt temporäre Dateien
find . -type f -name "*Zone.Identifier" -delete
find . -type f -name "*.retry" -delete
# Projektstatus
status: ## Zeigt Container-Status
@echo "Aktuelles Projekt: $(PROJECT_NAME)"
@echo "Umgebung: $(ENV)"
doctor: ## Prüft ob Komponenten installiert sind
@echo "🔍 Prüfe Voraussetzungen..."
@which docker > /dev/null || echo "❌ Docker fehlt"
@which ansible-playbook > /dev/null || echo "❌ Ansible fehlt"
@test -f .env || echo "⚠️ .env-Datei fehlt"
# Helfer: Automatische Zielübersicht
help: ## Zeigt diese Hilfe an
@echo ""
@echo "🛠 Verfügbare Make-Befehle:"
@grep -E '^[a-zA-Z_-]+:.*?## ' Makefile | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}'
@echo ""
composer: ## Use Composer
docker compose exec php composer $(ARGS)
fix-perms: ## Fix permissions
sudo chown -R $(USER):$(USER) .
cs:
@$(MAKE) composer ARGS="cs"
cs-fix-file: ## Fix code style for a specific file
docker compose exec -e PHP_CS_FIXER_IGNORE_ENV=1 php ./vendor/bin/php-cs-fixer fix $(subst \,/,$(FILE))
cs-fix: ## Fix code style for all PHP files
docker compose exec -e PHP_CS_FIXER_IGNORE_ENV=1 php ./vendor/bin/php-cs-fixer fix
health:
ansible-playbook ansible/check.yml
# Konfiguration
ANSIBLE_INVENTORY=ansible/inventory/hosts.ini
PLAYBOOK_DIR=ansible/playbooks/deploy
.PHONY: dev staging production
dev:
ansible-playbook -i $(ANSIBLE_INVENTORY) $(PLAYBOOK_DIR)/dev.yml #--ask-become-pass
staging:
ansible-playbook -i $(ANSIBLE_INVENTORY) $(PLAYBOOK_DIR)/staging.yml
production:
ansible-playbook -i $(ANSIBLE_INVENTORY) $(PLAYBOOK_DIR)/production.yml
.PHONY: up down build restart logs ps phpinfo deploy setup clean status