first commit
This commit is contained in:
63
Makefile
Normal file
63
Makefile
Normal file
@@ -0,0 +1,63 @@
|
||||
# =============================================================================
|
||||
# Makefile — workflow host/container condiviso (vedi CLAUDE.md §Workflow).
|
||||
# Regola d'oro: chi scrive file lo fa come utente host (beppe). Mai mischiare
|
||||
# node_modules musl(container) e glibc(host).
|
||||
# - composer / npm -> HOST
|
||||
# - artisan con servizi -> container MA come UID host (file beppe-owned)
|
||||
# =============================================================================
|
||||
|
||||
UID := $(shell id -u)
|
||||
GID := $(shell id -g)
|
||||
DC := docker compose
|
||||
EXEC := $(DC) exec -u $(UID):$(GID) backend
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: help up down build logs composer be-install be-update artisan migrate import tinker fe-install fe-rebuild fe-dev fe-build permissions
|
||||
|
||||
help: ## Mostra questo aiuto
|
||||
@grep -hE '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) | awk 'BEGIN{FS=":.*?## "}{printf " \033[36m%-14s\033[0m %s\n",$$1,$$2}'
|
||||
|
||||
## --- Stack ---
|
||||
up: ## Avvia l'intero stack dev: Vite HMR + backend(serve) + db + redis + docs + mailpit
|
||||
$(DC) up -d
|
||||
down: ## Ferma lo stack
|
||||
$(DC) down
|
||||
build: ## Ricostruisce le immagini (con --pull per base aggiornate)
|
||||
$(DC) build --pull
|
||||
logs: ## Segue i log del backend
|
||||
$(DC) logs -f backend
|
||||
|
||||
## --- Backend / PHP (composer sull'HOST) ---
|
||||
composer: ## composer host (es: make composer c="require foo/bar")
|
||||
composer -d backend $(c)
|
||||
be-install: ## composer install (host)
|
||||
composer -d backend install
|
||||
be-update: ## composer update (host)
|
||||
composer -d backend update
|
||||
artisan: ## artisan nel container come utente host (es: make artisan c="migrate --seed")
|
||||
$(EXEC) php artisan $(c)
|
||||
migrate: ## php artisan migrate (container)
|
||||
$(EXEC) php artisan migrate
|
||||
import: ## ETL da v1 (container)
|
||||
$(EXEC) php artisan v1:import
|
||||
tinker: ## REPL artisan (container)
|
||||
$(EXEC) php artisan tinker
|
||||
|
||||
## --- Frontend / Node ---
|
||||
# In dev Vite gira NEL container (make up): HMR via bind-mount, node_modules musl
|
||||
# nel volume anonimo. Su host npm serve solo a tenere package-lock + node_modules
|
||||
# host sincronizzati per il type-check dell'IDE; dopo ogni modifica a package.json
|
||||
# rigenerare l'immagine frontend con `make fe-rebuild`.
|
||||
fe-install: ## npm install host (aggiorna package-lock + node_modules host per l'IDE)
|
||||
cd frontend && npm install
|
||||
fe-rebuild: ## Ricostruisce l'immagine frontend dopo modifiche a package.json (aggiorna node_modules del container)
|
||||
$(DC) up -d --build frontend
|
||||
fe-dev: ## ALTERNATIVA: vite dev server su host senza Docker (conflitto porta 5173 se lo stack è su)
|
||||
cd frontend && npm run dev
|
||||
fe-build: ## build di produzione su host (smoke test locale)
|
||||
cd frontend && npm run build
|
||||
|
||||
## --- Manutenzione ---
|
||||
permissions: ## Permessi storage scrivibili da php-fpm (www-data) — richiede sudo, una tantum
|
||||
sudo chgrp -R www-data backend/storage backend/bootstrap/cache
|
||||
sudo chmod -R g+ws backend/storage backend/bootstrap/cache
|
||||
Reference in New Issue
Block a user