Composer: Installation sur conteneurs Docker

Créé le 28 juin 2016  ·  3Commentaires  ·  Source: composer/composer

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
Question

Commentaire le plus utile

Tous les 3 commentaires

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.

Cette page vous a été utile?
0 / 5 - 0 notes