Composer是PHP的依赖管理器,用于管理PHP项目的依赖。
收藏数: 1.1千
下载次数: 201476432
类型:

library/composerComposer是一个用PHP编写的PHP依赖管理工具,允许您声明项目所依赖的库,并为您管理(安装/更新)这些依赖关系。
由Rob Bast维护,社区贡献者提供支持。
2.8.12, 2.8, 2, latest2.2.25, 2.21.10.27, 1.10, 1amd64arm32v6arm32v7arm64v8i386ppc64leriscv64s390xconsole$ docker run --rm --interactive --tty \ --volume $PWD:/app \ composer <command>
可以将Composer主目录从主机绑定挂载到容器中,以启用持久缓存或共享全局配置:
console$ docker run --rm --interactive --tty \ --volume $PWD:/app \ --volume ${COMPOSER_HOME:-$HOME/.composer}:/tmp \ composer <command>
注意: 这依赖于镜像中默认将
COMPOSER_HOME值设置为/tmp的事实。
如果您的环境遵循XDG规范:
console$ docker run --rm --interactive --tty \ --env COMPOSER_HOME \ --env COMPOSER_CACHE_DIR \ --volume ${COMPOSER_HOME:-$HOME/.config/composer}:$COMPOSER_HOME \ --volume ${COMPOSER_CACHE_DIR:-$HOME/.cache/composer}:$COMPOSER_CACHE_DIR \ --volume $PWD:/app \ composer <command>
默认情况下,Composer在容器内以root用户身份运行。这可能导致主机文件系统上的权限问题。您可以通过使用不同的用户运行容器来解决此问题:
console$ docker run --rm --interactive --tty \ --volume $PWD:/app \ --user $(id -u):$(id -g) \ composer <command>
详情请参见: [***]
注意: Docker for Mac的行为有所不同,此提示可能不适用于Docker for Mac用户。
当需要访问私有仓库时,您需要共享配置的凭据,或将ssh-agent套接字挂载到正在运行的容器中:
console$ eval $(ssh-agent); \ docker run --rm --interactive --tty \ --volume $PWD:/app \ --volume $SSH_AUTH_SOCK:/ssh-auth.sock \ --env SSH_AUTH_SOCK=/ssh-auth.sock \ composer <command>
注意: 在OSX上,这需要Docker For Mac v2.2.0.0或更高版本,参见docker/for-mac#410。
当将私有仓库的使用与以其他用户身份运行Composer结合时,可能会遇到不存在的用户错误(由ssh抛出)。要解决此问题,请将主机的passwd和group文件(只读)绑定挂载到容器中:
console$ eval $(ssh-agent); \ docker run --rm --interactive --tty \ --volume $PWD:/app \ --volume $SSH_AUTH_SOCK:/ssh-auth.sock \ --volume /etc/passwd:/etc/passwd:ro \ --volume /etc/group:/etc/group:ro \ --env SSH_AUTH_SOCK=/ssh-auth.sock \ --user $(id -u):$(id -g) \ composer <command>
此镜像旨在快速运行Composer,无需在主机上安装PHP运行时。不应依赖容器中的PHP版本。我们不提供每个支持的PHP版本的Composer镜像,因为我们不鼓励将Composer用作基础镜像或生产镜像。
我们努力提供尽可能精简的镜像,仅用于运行Composer。有时依赖项或Composer脚本需要某些PHP扩展。
解决建议:
(最佳方案)创建自己的构建镜像并安装Composer。
注意: Docker 17.05引入了多阶段构建,极大简化了这一过程:
dockerfileCOPY --from=composer /usr/bin/composer /usr/bin/composer
(替代方案)在composer.json中指定目标平台/扩展:
json{ "config": { "platform": { "php": "MAJOR.MINOR.PATCH", "ext-something": "MAJOR.MINOR.PATCH" } } }
(不推荐)向install或update传递--ignore-platform-reqs和/或--no-scripts标志:
console$ docker run --rm --interactive --tty \ --volume $PWD:/app \ composer install --ignore-platform-reqs --no-scripts
console$ docker run --rm --interactive --tty \ --volume $PWD:/app \ composer install
console$ docker run --rm --interactive --tty \ --volume $PWD:/app \ composer create-project laravel/laravel my-project
console$ docker run --rm --interactive --tty \ --volume $PWD:/app \ composer update
yamlversion: '3' services: composer: image: composer:latest volumes: - .:/app - ${COMPOSER_HOME:-$HOME/.composer}:/tmp user: ${UID:-1000}:${GID:-1000} command: install
[***]
library/composer labelrepos/composer/ directory (历史)查看此镜像中包含的软件的许可证信息。
与所有Docker镜像一样,这些镜像可能还包含其他可能在其他许可证下的软件(例如基础发行版中的Bash等,以及包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能位于repo-info仓库的composer/目录中。
至于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可证。
以下是 composer 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 版本下载页面。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务