Composer: Instalação em contêineres Docker

Criado em 28 jun. 2016  ·  3Comentários  ·  Fonte: composer/composer

Como diz a documentação :

AVISO: Não redistribua o código de instalação. Isso mudará com cada versão do instalador. Em vez disso, conecte-se a esta página.

é irritante usar o código de instalação fornecido lá em um Dockerfile, pois a verificação SHA-384 ficará obsoleta muito em breve e receberemos uma mensagem Installer corrupt triste toda vez que tentarmos construir o contêiner.
Eu costumava gostar da instalação de uma linha, mas sei que tem o problema de corrupção.

Então, quais são as diretrizes para usá-lo em um Dockerfile? Devemos continuar usando a instalação de uma linha acima? Deve estar nos documentos?

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

Comentários muito úteis

Todos 3 comentários

Acho que para o Docker, provavelmente é melhor usar uma versão estável conhecida e baixá-la diretamente.

Por exemplo:

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

Sei que isso não oferece a mesma segurança que o script de instalação oferece.

Outra opção seria confirmar o composer.phar no repositório que também contém o Dockerfile e, em seguida, simplesmente usar uma etapa COPY para copiá-lo para o contêiner no momento da construção.

No caso do Docker, isso também pode ser verificado encadeando comandos, como se algum deles falhasse na instrução RUN, a construção da imagem inteira também falharia:

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

É muito comum ter isso para verificações de assinaturas, veja dockerfile oficial do php, por exemplo.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

PabloJoan picture PabloJoan  ·  3Comentários

FabioQ picture FabioQ  ·  3Comentários

tom-- picture tom--  ·  3Comentários

antoscarface picture antoscarface  ·  3Comentários

greg0ire picture greg0ire  ·  3Comentários