Public | Automated Build

Last pushed: 10 months ago
Short Description
Composer: Dependency Manager for PHP
Full Description


This image has been deprecated and moved to the official composer Docker Container. See the source for more information.

Supported tags and respective Dockerfile links

  • 1.0
  • 1.0-alpine
  • 1.0-php5
  • 1.0-php5-alpine
  • 1.1, 1, latest
  • 1.1-php5, 1-php5, php5
  • 1.1-alpine, 1-alpine, alpine
  • 1.1-php5-alpine, 1-php5-alpine, php5-alpine
  • master
  • master-php5
  • master-alpine
  • master-php5-alpine

What is Composer?

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. (software))

How to use this image.

Installation / Usage

  1. Install the composer/composer container:

     $ docker pull composer/composer

    Alternatively, pull a specific version of composer/composer:

     $ docker pull composer/composer:1.1
  2. Create a composer.json defining your dependencies. Note that this example is
    a short version for applications that are not meant to be published as packages
    themselves. To create libraries/packages please read the

         "require": {
             "monolog/monolog": ">=1.0.0"
  3. Run Composer through the Composer container:

     $ docker run --rm -v $(pwd):/app composer/composer install

    Or run using a specific version of Composer:

     $ docker run --rm -v $(pwd):/app composer/composer:1.1 install

    If working with packages installed via git ssh the local .ssh directory shall be mapped into the container:

     $ docker run --rm -v $(pwd):/app -v ~/.ssh:/root/.ssh composer/composer install
  4. Add optional composer command to the host (tested on OS X El Capitan with docker-machine)

    Create new composer file

     $ sudo vim /usr/local/bin/composer

    The contents of the file will look like this:

     export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
     echo "Current working directory: '"$(pwd)"'"
     docker run --rm -v $(pwd):/app -v ~/.ssh:/root/.ssh composer/composer $@

    Once the script has been made, it must be set as executable

     $ sudo chmod +x /usr/local/bin/composer

    Now the composer command is available native on host:

     $ composer --version

Image Variants


This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your source code and start the container to start your app), as well as the base to build other images off of.


This is made to run Composer through PHP 5, rather then the default of PHP 7.


This image is based on the popular Alpine Linux project, available in the alpine official image. Alpine Linux is much smaller than most distribution base images (~5MB), and thus leads to much slimmer images in general.


This is made to run Composer through PHP 5, rather then the default of PHP 7, through the Alpine container.

Docker Pull Command
Source Repository

Comments (32)
a month ago

docker run --rm -v $(pwd):/app --user hmiklos composer/composer install
docker: Error response from daemon: linux spec user: unable to find user hmiklos: no matching entries in passwd file.
What am I doing? Please help me

2 months ago

You might prefer to run composer as your own user, that is with the "--user id -u" flags. Otherwise, all the files created will be owner be root.

2 months ago

To enable extensions, verify that they are enabled in those .ini files:

- /usr/local/etc/php/conf.d/always_populate_raw_post_data.ini
- /usr/local/etc/php/conf.d/date_timezone.ini
- /usr/local/etc/php/conf.d/docker-php-ext-bz2.ini
- /usr/local/etc/php/conf.d/docker-php-ext-gd.ini
- /usr/local/etc/php/conf.d/docker-php-ext-ldap.ini
- /usr/local/etc/php/conf.d/docker-php-ext-mcrypt.ini
- /usr/local/etc/php/conf.d/docker-php-ext-pcntl.ini
- /usr/local/etc/php/conf.d/docker-php-ext-xsl.ini
- /usr/local/etc/php/conf.d/docker-php-ext-zip.ini
- /usr/local/etc/php/conf.d/memory-limit.ini
3 months ago

May I know who can i execute $ docker run --rm -v $(pwd):/app composer/composer install on docker toolbox on windows 10?

4 months ago

As already mentioned, to get this working in docker-compose.yml you must use this structure:

    image: composer/composer
       - php <- name of your php block
    working_dir: /var/www/html

Notice I had to declare the volume as an array.

6 months ago

I've changed the response from the solution in this thread ( suggested by @otravers, adding the docker-compose file location in my docker folder:

export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
echo "Current working directory: '"$(pwd)"'"
docker-compose -f /path_to_docker-compose_file/docker-compose.yml run composer $@

And I've inserted the volumes_from and working_dir for my cluster config in my docker-compose.yml file:

image: composer/composer
volumes_from: php
working_dir: /var/www/

10 months ago

I have a problem to connect to an private mecurial repository in our company intranet.
The only error i receive is:

Failed to execute hg clone 'ssh://' '/app/vendor/company/dbo'
abort: no suitable response from remote hg!

From logfiles on the mercurial server the ssh tunnel is established with out errors, but no more logs.

I have extend the composer/composer:1.1-alpine image by this dockerfile.

FROM composer/composer:1.1-alpine
RUN composer self-update
RUN apk add --update mercurial

Has anyone here used this image on an private mercurial repository in intranet without services like bitbucket ?

10 months ago

I struggled with docker-compose, finally figured out thanks to this comment:

a year ago

the composer of the folder inside the container is at the root /composer/ for anyone who wants to know.

a year ago

Call composer with --ignore-platform-reqs flag, example:

docker run --rm -v $(pwd):/app composer/composer update -o -vv --ignore-platform-reqs