Composer: Installation auf Docker-Containern

Erstellt am 28. Juni 2016  ·  3Kommentare  ·  Quelle: composer/composer

Wie die Doku sagt:

WARNUNG: Bitte geben Sie den Installationscode nicht weiter. Es ändert sich mit jeder Version des Installationsprogramms. Verlinken Sie stattdessen bitte auf diese Seite.

Es ist ärgerlich, den dort bereitgestellten Installationscode in einem Dockerfile zu verwenden, da die SHA-384-Verifizierung sehr bald veraltet ist und wir jedes Mal, wenn wir versuchen, den Container zu bauen, eine traurige Installer corrupt Meldung erhalten.
Früher mochte ich die Einzeiler-Installation, aber ich weiß, dass sie das Korruptionsproblem hat.

Also, was sind die Richtlinien für die Verwendung in einem Dockerfile? Sollten wir die obige Einzeiler-Installation weiterhin verwenden? Sollte es in den Dokumenten stehen?

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Question

Hilfreichster Kommentar

Alle 3 Kommentare

Ich denke für Docker ist es wahrscheinlich am besten, eine bekannte stabile Version zu verwenden und diese direkt herunterzuladen.

Z.B:

wget https://getcomposer.org/download/1.1.3/composer.phar
# or if you want snapshot
wget https://getcomposer.org/composer.phar

Ich weiß, dass dies nicht die gleiche Sicherheit bietet, die das Installationsskript bietet.

Eine andere Möglichkeit wäre, die composer.phar in das Repository zu übertragen, das auch die Dockerfile enthält, und dann einfach einen COPY-Schritt zu verwenden, um sie zur Build-Zeit in den Container zu kopieren.

Im Fall von Docker kann dies auch durch Verkettungsbefehle überprüft werden, denn wenn einer von ihnen in der RUN-Anweisung fehlschlägt, würde auch der gesamte Image-Build fehlschlagen:

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

Es ist sehr üblich, dies für Signaturprüfungen zu verwenden, siehe zum Beispiel php Official Dockerfile .

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen