Questa immagine Docker personale permette di eseguire Composer 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.
- Basata su Laravel Sail con Composer preinstallato
- Utente non-root configurato per evitare problemi di permessi
- Supporto per volumi persistenti (dati Composer e progetto)
- Include laravel/installer e cpx globalmente
docker build -t manudonihubcoreai/composer:latest .
Puoi personalizzare la versione di PHP e l'utente del container tramite i parametri di build:
docker build --build-arg PHP_VERSION=81 --build-arg USER_ID=$(id -u) --build-arg USER_GROUP=$(id -g) -t manudonihubcoreai/composer:81 .
docker run -it --rm -u "$(id -u):$(id -g)" \
-e HOME=/home/docker \
-e COMPOSER_HOME=/home/docker/.composer \
-v composer_data:/home/docker/.composer \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
manudonihubcoreai/composer:latest composer [comando]
Esempio per installare le dipendenze:
docker run -it --rm -u "$(id -u):$(id -g)" \
-e HOME=/home/docker \
-e COMPOSER_HOME=/home/docker/.composer \
-v composer_data:/home/docker/.composer \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
manudonihubcoreai/composer:latest composer install
-
Per semplificare l'uso dei comandi, puoi creare un alias nel tuo terminale:
alias drun='docker run -it --rm -u "$(id -u):$(id -g)"'
In questo modo puoi sostituire
docker run -it --rm -u "$(id -u):$(id -g)"
condrun
in tutti gli esempi del README. -
Puoi usare questa immagine in WSL o in qualsiasi ambiente Docker compatibile.
-
Il volume
composer_data
mantiene la cache e la configurazione di Composer tra le esecuzioni. -
Il volume del progetto (
$(pwd):/var/www/html
) consente di lavorare sulla directory corrente.
Mostra i pacchetti globali:
docker run -it --rm -u "$(id -u):$(id -g)" \
-e HOME=/home/docker \
-e COMPOSER_HOME=/home/docker/.composer \
-v composer_data:/home/docker/.composer \
manudonihubcoreai/composer:latest composer global show -D
Installa un pacchetto:
docker run -it --rm -u "$(id -u):$(id -g)" \
-e HOME=/home/docker \
-e COMPOSER_HOME=/home/docker/.composer \
-v composer_data:/home/docker/.composer \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
manudonihubcoreai/composer:latest composer require vendor/package
Per semplificare l'utilizzo di Composer senza installarlo localmente, puoi aggiungere questo alias al tuo .bashrc
, .zshrc
o file di configurazione della shell:
alias composer='docker run -it --rm -u "$(id -u):$(id -g)" -e HOME=/home/docker -e COMPOSER_HOME=/home/docker/.composer -v composer_data:/home/docker/.composer -v "$(pwd):/var/www/html" -w /var/www/html manudonihubcoreai/composer:latest composer'
In questo modo potrai eseguire tutti i comandi Composer direttamente dal terminale, come se fosse installato nativamente:
composer install
composer require vendor/package
composer global show -D