Composer: Instalación en contenedores Docker

Creado en 28 jun. 2016  ·  3Comentarios  ·  Fuente: composer/composer

Como dice la documentación :

ADVERTENCIA: No redistribuya el código de instalación. Cambiará con cada versión del instalador. En su lugar, enlace a esta página.

Es molesto usar el código de instalación provisto allí en un Dockerfile, ya que la verificación SHA-384 quedará obsoleta muy pronto y recibiremos un triste mensaje Installer corrupt cada vez que intentemos construir el contenedor.
Me gustaba la instalación de una sola línea, pero sé que tiene un problema de corrupción.

Entonces, ¿cuáles son las pautas para usarlo en un Dockerfile? ¿Deberíamos seguir usando la instalación de una línea anterior? ¿Debería estar en los documentos?

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

Comentario más útil

Todos 3 comentarios

Creo que para Docker, probablemente sea mejor usar una versión estable conocida y descargarla directamente.

P.ej:

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

Sé que esto no le ofrece la misma seguridad que proporciona el script de instalación.

Otra opción sería confirmar composer.phar en el repositorio que también contiene el Dockerfile, y luego simplemente usar un paso COPY para copiarlo en el contenedor en el momento de la compilación.

En el caso de Docker, también se puede verificar encadenando comandos, ya que si alguno de ellos falla en la instrucción RUN, la compilación completa de la imagen también fallaría:

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 muy común tener esto para las verificaciones de firmas, consulte php official dockerfile, por ejemplo.

¿Fue útil esta página
0 / 5 - 0 calificaciones