For more information about this image and its history, please see the relevant manifest file (library/composer
). This image is updated via pull requests to the docker-library/official-images
GitHub repo.
For detailed information about the virtual/transfer sizes and individual layers of each of the above supported tags, please see the repos/composer/tag-details.md
file in the docker-library/repo-info
GitHub repo.
Composer is a tool for dependency management in PHP, written in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
You can read more about Composer in our official documentation.
Run the composer
image:
docker run --rm --interactive --tty \
--volume $PWD:/app \
composer install
You can mount the Composer home directory from your host inside the Container to share caching and configuration files:
docker run --rm --interactive --tty \
--volume $PWD:/app \
--volume $COMPOSER_HOME:/composer \
composer install
By default, Composer runs as root inside the container. This can lead to permission issues on your host filesystem. You can run Composer as your local user:
docker run --rm --interactive --tty \
--volume $PWD:/app \
--user $(id -u):$(id -g) \
composer install
When you need to access private repositories, you will either need to share your configured credentials, or mount your ssh-agent
socket inside the running container:
docker run --rm --interactive --tty \
--volume $PWD:/app \
--volume $SSH_AUTH_SOCK:/ssh-auth.sock \
--env SSH_AUTH_SOCK=/ssh-auth.sock \
composer install
We strive to deliver an image that is as lean as possible, aimed at running Composer only.
Sometimes dependencies or Composer scripts require the availability of certain PHP extensions. In this scenario, you have two options:
-
Pass the
--ignore-platform-reqs
and--no-scripts
flags toinstall
orupdate
:docker run --rm --interactive --tty \ --volume $PWD:/app \ composer install --ignore-platform-reqs --no-scripts
-
Create your own image (possibly by extending
FROM composer
).
If you want to be able to run composer
as if it was installed on your host locally, you can define the following function in your ~/.bashrc
, ~/.zshrc
or similar:
composer () {
tty=
tty -s && tty=--tty
docker run \
$tty \
--interactive \
--rm \
--user $(id -u):$(id -g) \
--volume $(pwd):/app \
composer "$@"
}
View license information for the software contained in this image.
This image is officially supported on Docker version 1.12.6.
Support for older versions (down to 1.6) is provided on a best-effort basis.
Please see the Docker installation documentation for details on how to upgrade your Docker daemon.
If you have any problems with or questions about this image, please contact us through a GitHub issue. If the issue is related to a CVE, please check for a cve-tracker
issue on the official-images
repository first.
You can also reach us through the #composer
or #docker-library
IRC channels on Freenode.
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.
Documentation for this image is stored in the composer/
directory of the docker-library/docs
GitHub repo. Be sure to familiarize yourself with the repository's README.md
file before attempting a pull request.