Logo Ing. Domenico Alvaro
Ing. Domenico Alvaro

Starter Kit

Laravel Starter (Docker)

Laravel + Nginx + PHP-FPM + DB. Progetto Laravel dockerizzato con configurazione pronta per sviluppo e deploy, ideale per portali e gestionali.

Livello: IntermedioLaravelPHPNginxDockerMySQL

Cosa include

  • Dockerfile
  • Nginx config
  • DB service
  • Env sample

Documentazione rapida

Setup Docker per Laravel/Orchid con PHP-FPM + Nginx + MySQL + Node/Vite (senza installare nulla sul PC).

Passi

  1. Crea/usa la struttura: docker/nginx/default.conf e docker/php/php.ini (evita confusione tra docker/ e .docker/).
  2. Configura docker-compose.yml (app + nginx + mysql + node) e Dockerfile (php 8.2 + estensioni).
  3. Imposta il database nel .env (DB_HOST=mysql).
  4. Avvia lo stack con Docker Compose.
  5. Esegui composer + key + migrate + storage:link dentro al container PHP.
  6. Se la home non carica JS/CSS, verifica Vite/hot (public/hot) e forza HMR su localhost.

Comandi

docker compose up -d --build

docker compose exec app composer install
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate
docker compose exec app php artisan storage:link
docker compose exec app bash -lc "chown -R www-data:www-data storage bootstrap/cache && chmod -R 775 storage bootstrap/cache"

.env (sample)

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=orchid
DB_USERNAME=orchid
DB_PASSWORD=orchid_pass

Troubleshooting

  • Nginx non parte e log dice: default.conf is a directory → monta ./docker/nginx su /etc/nginx/conf.d e assicurati che docker/nginx/default.conf sia un FILE.
  • Home non carica asset e public/hot contiene http://[::]:5173 → configura Vite con host 0.0.0.0 e HMR host=localhost (così hot punta a localhost:5173).