Si vous développer en PHP avec tout votre environnement local de développement en docker, alors vous voudriez bien aussi utilisez les bonnes pratiques de docker et placer Composer dans un container.

Pour ce faire, il existe donc l’image officiel de Composer sur le hub de docker.

Voilà comment, je l’utilise :

docker pull composer

Ce container sera utilisé en lancement au premier plan et supprimer ensuite, il est inutile de laisser tourner ce container.

Editer le fichier .bash_aliases de votre utilisateur et ajouter (N’oubliez pas source .bashrc pour informer le système de vos changements)

composer () {
    tty=
    tty -s && tty=--tty
    docker run \
        $tty \
        --interactive \
        --rm \
        --user $(id -u):$(id -g) \
        --volume /etc/passwd:/etc/passwd:ro \
        --volume /etc/group:/etc/group:ro \
        --volume $(pwd):/app \
        --volume $HOME/.composer:/composer \
        composer "$@"
}

Les différents paramètres --user et --volume permettent d’être sur d’avoir les droits utilisateurs sur les fichiers. Le dernier --volume permet d’utiliser le cache de composer.

Pour installer certaines dépendances ou des scripts Composer, il y a des vérifications qui bloque l’installation. Vous avez une option:

Utiliser --ignore-platform-reqs et --no-scripts flags pour faire les opérations install ou update

Et voilà.