Como instalar o compositor de PHP dentro de um Contentor de docker
Tento arranjar uma forma de criar um ambiente dev usando o docker e o laravel.
tenho o seguinte ficheiro:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev \
mysql-client libmagickwand-dev --no-install-recommends \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql
&& chmod -R o+rw laravel-master/bootstrap laravel-master/storage
o Laravel necessita que o compositor ligue para o composer dump-autoload ao trabalhar com a migração de bases de dados. Por isso, preciso de um compositor dentro do contentor do ancoradouro.
Eu tentei.RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer
Mas quando eu ligar ...
docker-compose up
docker-compose exec app composer dump-autoload
ele lança o seguinte erro:
rpc error: code = 13 desc = invalid header field value "oci runtime error: exec failed: container_linux.go:247: starting container process caused \"exec: \\\"composer\\\": executable file not found in $PATH\"\n"
Eu ficaria mais do que feliz por um conselho de Como posso adicionar compositor ao Caminho dentro do meu ficheiro dockerfile ou o que mais posso fazer para ultrapassar este erro.
Obrigado pelo apoio.
Além disso: Este é o repositório gitub se precisar de ver a composição do acoplador.arquivo yml ou qualquer outra coisa.
0
3 answers
Posso instalar o compositor adicionando esta linha no meu ficheiro de testes:
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Aqui está o ficheiro dockerfile:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev \
mysql-client libmagickwand-dev --no-install-recommends \
&& pecl install imagick \
&& docker-php-ext-enable imagick \
&& docker-php-ext-install mcrypt pdo_mysql
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Funciona para mim, para testar se o compositor está instalado eu acedo à minha Bash container e executo:
composer --version
Composer version 1.6.5 2018-05-04 11:44:59
1
Author: Brayan Caldera, 2018-07-20 16:04:50
Temos basicamente o mesmo comando a funcionar com a diferença.
--install-dir=/usr/local/bin
Em alternativa, deverá adicionar a localização dos ficheiros BIN do compositor à variável $PATH.
export PATH=$PATH":/usr/bin"
1
Author: mutas, 2018-07-20 13:40:00
Crie um executável do seu ficheiro de compositor usando
RUN curl -sS https://getcomposer.org/installer | php -- \
--install-dir=/usr/bin --filename=composer && chmod +x /usr/bin/composer
1
Author: Adnan Mumtaz, 2018-07-20 13:40:22