|
| 1 | +# docker-php-composer |
| 2 | + |
| 3 | +Questa immagine Docker personale permette di eseguire [Composer](https://getcomposer.org/) all'interno di WSL (Windows Subsystem for Linux) senza doverlo installare direttamente nel sistema operativo. È pensata per semplificare la gestione delle dipendenze PHP in ambienti di sviluppo isolati e riproducibili. |
| 4 | + |
| 5 | +## Caratteristiche |
| 6 | + |
| 7 | +- Basata su Laravel Sail con Composer preinstallato |
| 8 | +- Utente non-root configurato per evitare problemi di permessi |
| 9 | +- Supporto per volumi persistenti (dati Composer e progetto) |
| 10 | +- Include laravel/installer e cpx globalmente |
| 11 | + |
| 12 | +## Build dell'immagine |
| 13 | + |
| 14 | +```bash |
| 15 | +docker build -t composer84:latest . |
| 16 | +``` |
| 17 | + |
| 18 | +### Build con parametri personalizzati |
| 19 | + |
| 20 | +Puoi personalizzare la versione di PHP e l'utente del container tramite i parametri di build: |
| 21 | + |
| 22 | +```bash |
| 23 | +docker build --build-arg PHP_VERSION=81 --build-arg USER_ID=$(id -u) --build-arg USER_GROUP=$(id -g) -t composer81:latest . |
| 24 | +``` |
| 25 | + |
| 26 | +## Esecuzione del container |
| 27 | + |
| 28 | +```bash |
| 29 | +docker run -it --rm -u "$(id -u):$(id -g)" \ |
| 30 | + -v composer_data:/home/docker/.composer \ |
| 31 | + -v "$(pwd):/var/www/html" \ |
| 32 | + -w /var/www/html \ |
| 33 | + composer84:latest composer [comando] |
| 34 | +``` |
| 35 | + |
| 36 | +Esempio per installare le dipendenze: |
| 37 | + |
| 38 | +```bash |
| 39 | +docker run -it --rm -u "$(id -u):$(id -g)" \ |
| 40 | + -v composer_data:/home/docker/.composer \ |
| 41 | + -v "$(pwd):/var/www/html" \ |
| 42 | + -w /var/www/html \ |
| 43 | + composer84:latest composer install |
| 44 | +``` |
| 45 | + |
| 46 | +## Note |
| 47 | + |
| 48 | +- Per semplificare l'uso dei comandi, puoi creare un alias nel tuo terminale: |
| 49 | + |
| 50 | + ```bash |
| 51 | + alias drun='docker run -it --rm -u "$(id -u):$(id -g)"' |
| 52 | + ``` |
| 53 | + |
| 54 | + In questo modo puoi sostituire `docker run -it --rm -u "$(id -u):$(id -g)"` con `drun` in tutti gli esempi del README. |
| 55 | + |
| 56 | +- Puoi usare questa immagine in WSL o in qualsiasi ambiente Docker compatibile. |
| 57 | +- Il volume `composer_data` mantiene la cache e la configurazione di Composer tra le esecuzioni. |
| 58 | +- Il volume del progetto (`$(pwd):/var/www/html`) consente di lavorare sulla directory corrente. |
| 59 | + |
| 60 | +## Esempi di comandi utili |
| 61 | + |
| 62 | +Mostra i pacchetti globali: |
| 63 | + |
| 64 | +```bash |
| 65 | +docker run -it --rm -u "$(id -u):$(id -g)" \ |
| 66 | + -v composer_data:/home/docker/.composer \ |
| 67 | + composer84:latest composer global show -D |
| 68 | +``` |
| 69 | + |
| 70 | +Installa un pacchetto: |
| 71 | + |
| 72 | +```bash |
| 73 | +docker run -it --rm -u "$(id -u):$(id -g)" \ |
| 74 | + -v composer_data:/home/docker/.composer \ |
| 75 | + -v "$(pwd):/var/www/html" \ |
| 76 | + -w /var/www/html \ |
| 77 | + composer84:latest composer require vendor/package |
| 78 | +``` |
| 79 | + |
| 80 | +## Alias consigliato per Composer |
| 81 | + |
| 82 | +Per semplificare l'utilizzo di Composer senza installarlo localmente, puoi aggiungere questo alias al tuo `.bashrc`, `.zshrc` o file di configurazione della shell: |
| 83 | +
|
| 84 | +```bash |
| 85 | +alias composer='docker run -it --rm -u "$(id -u):$(id -g)" -v composer_data:/home/docker/.composer -v "$(pwd):/var/www/html" -w /var/www/html composer84:latest composer' |
| 86 | +``` |
| 87 | +
|
| 88 | +In questo modo potrai eseguire tutti i comandi Composer direttamente dal terminale, come se fosse installato nativamente: |
| 89 | +
|
| 90 | +```bash |
| 91 | +composer install |
| 92 | +composer require vendor/package |
| 93 | +composer global show -D |
| 94 | +``` |
0 commit comments