Comme le dit la doc :
AVERTISSEMENT : veuillez ne pas redistribuer le code d'installation. Il changera avec chaque version du programme d'installation. Au lieu de cela, veuillez créer un lien vers cette page.
il est ennuyeux d'utiliser le code d'installation fourni dans un fichier Docker, car la vérification SHA-384 sera très bientôt périmée et nous aurons un triste message Installer corrupt
chaque fois que nous essaierons de construire le conteneur.
J'aimais l'installation en une ligne, mais je sais qu'elle a un problème de corruption.
Alors, quelles sont les directives pour l'utiliser sur un Dockerfile ? Devrions-nous continuer à utiliser l'installation simple ci-dessus ? Cela devrait-il être sur la doc ?
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Je pense que pour Docker, il est probablement préférable d'utiliser une version stable connue et de la télécharger directement.
Par exemple:
wget https://getcomposer.org/download/1.1.3/composer.phar
# or if you want snapshot
wget https://getcomposer.org/composer.phar
Je sais que cela ne vous offre pas la même sécurité que le script d'installation fournit.
Une autre option serait de valider le composer.phar dans le référentiel qui contient également le fichier Docker, puis d'utiliser simplement une étape COPY pour le copier dans le conteneur au moment de la construction.
Dans le cas de Docker, cela peut également être vérifié en enchaînant des commandes, comme si l'une d'entre elles échouait dans l'instruction RUN, toute la construction de l'image échouerait également :
RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
&& curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
&& php composer-setup.php -- --install-dir=/root/bin --filename=composer
Il est très courant d'avoir cela pour les vérifications de signature, voir le dockerfile officiel de php par exemple.
Commentaire le plus utile
https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md