Docker: uso de Composer dentro del contenedor de PHP

Quiero poder usar la installation del compositor dentro de mi contenedor php-fpm. Mi configuration actual:

docker-compose.yml

version: '2' services: web: image: nginx ports: - "80:80" volumes: - ./public:/var/www/html - ./vhost.conf:/etc/nginx/conf.d/vhost.conf fpm: image: php:fpm volumes: - ./public:/var/www/html expose: - 9000 composer: restart: 'no' image: composer/composer command: install --working-dir=/var/www/html volumes_from: - fpm 

Pero obviamente mi command: install está sucediendo en el contenedor del compositor y no tiene las extensiones de php necesarias para completar la installation.

Y la composer install dentro del contenedor php-fpm dice que el compositor no está instalado

De alguna manera, google no tiene una respuesta para esto por lo que he visto.

Solo necesita instalar el composer dentro de su contenedor de fpm.

Algo como

 FROM php:5.6-fpm ... RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \ && php composer-setup.php --install-dir=/usr/local/bin --filename=composer \ && php -r "unlink('composer-setup.php');" 

En realidad, lo que sugeriría sería un contenedor de php-cli liviano separado solo para ejecutar el compositor (y otros commands). No tiene que ejecutarse de manera "persistente". Si está interesado, eche un vistazo cómo hice mi image para ejecutar tareas php como compositor o phpunit.

 docker run -ti --rm -v /path/to/your/project:/app kmwrona/ci-stack /usr/bin/composer install --quiet docker run -ti --rm -v /path/to/your/project:/app kmwrona/ci-stack /usr/bin/composer dump-autoload --optimize docker run -ti -a STDOUT -v /path/to/your/project:/app kmwrona/ci-stack /usr/bin/phpunit --log-junit /app/junit.xml --testdox-html /app/unit-tests-html-report.html