# --- Configuration --- PHP_EXEC = docker compose exec php CONSOLE = $(PHP_EXEC) php bin/console # --- Scripts d'automatisation --- # Note: Ces scripts sont complexes et utilisent '$$' pour échapper le '$' pour Make. # --- Commandes Docker --- .PHONY: pull build start stop restart logs logs-php pull: ## Récupère les dernières images docker @docker compose pull build: ## Construit (ou reconstruit) les images docker du projet @docker compose build start: ## Démarre tous les services en mode détaché @docker compose up -d # Ajout de -d pour le mode détaché par défaut stop: ## Arrête tous les services @docker compose down restart: stop start ## Redémarre tous les services logs: ## Affiche les logs de tous les services @docker compose logs -f logs-php: ## Affiche les logs du service PHP @docker compose logs -f php # --- Commandes d'Initialisation --- init: ## Installation initiale du projet (sans Vault/MinIO) @make pull @make build @make start @make composer-install @sleep 5 @make db-create @make migrate # --- Commandes Symfony & DB --- .PHONY: db-create entity migration migrate composer-install deps db-create: ## Crée la base de données @$(CONSOLE) doctrine:database:create --if-not-exists db-drop: ## Crée la base de données @$(CONSOLE) doctrine:database:drop --force entity: ## Lance la création/mise à jour d'une entité @$(CONSOLE) make:entity migration: ## Génère une nouvelle migration @$(CONSOLE) make:migration migrate: ## Applique les migrations @$(CONSOLE) doctrine:migrations:migrate --no-interaction composer-install: ## Installe les dépendances Composer @$(PHP_EXEC) composer install deps: composer-install ## Alias pour composer-install dbtest_add: ## Crée la base de données @$(CONSOLE) doctrine:database:create --env=test dbtest_migrate: ## Crée la base de données @$(CONSOLE) doctrine:migrations:migrate --env=test --no-interaction dbtest_remove: ## Crée la base de données @$(CONSOLE) doctrine:database:drop --env=test --force # --- Aide --- .PHONY: help help: ## Affiche cet écran d'aide @echo "Commandes disponibles mainframe :" @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' .DEFAULT_GOAL := help gitlab_build: docker build -t tools-registry.esy-web.dev/mainframe/mainframe:php docker/php docker push tools-registry.esy-web.dev/mainframe/mainframe:php