
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Composer是一个用PHP编写的PHP依赖管理工具,允许您声明项目所依赖的库,并为您管理(安装/更新)这些依赖关系。
由https://github.com/alcohol%E7%BB%B4%E6%8A%A4%EF%BC%8C%E7%A4%BE%E5%8C%BAhttps://github.com/composer/docker/graphs/contributors%E6%8F%90%E4%BE%9B%E6%94%AF%E6%8C%81%E3%80%82
console$ 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>
详情请参见: https://docs.docker.com/engine/reference/run/#user
注意: 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 \ docker.xuanyuan.run/composer <command>
注意: 在OSX上,这需要Docker For Mac v2.2.0.0或更高版本,参见https://github.com/docker/for-mac/issues/410%E3%80%82
当将私有仓库的使用与以其他用户身份运行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) \ docker.xuanyuan.run/composer <command>
此镜像旨在快速运行Composer,无需在主机上安装PHP运行时。不应依赖容器中的PHP版本。我们不提供每个支持的PHP版本的Composer镜像,因为我们不鼓励将Composer用作基础镜像或生产镜像。
我们努力提供尽可能精简的镜像,仅用于运行Composer。有时依赖项或Composerhttps://getcomposer.org/doc/articles/scripts.md需要某些PHP扩展。
解决建议:
(最佳方案)创建自己的构建镜像并https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.mdComposer%E3%80%82
注意: Docker 17.05引入了https://docs.docker.com/develop/develop-images/multistage-build/%EF%BC%8C%E6%9E%81%E5%A4%A7%E7%AE%80%E5%8C%96%E4%BA%86%E8%BF%99%E4%B8%80%E8%BF%87%E7%A8%8B%EF%BC%9A
dockerfileCOPY --from=composer /usr/bin/composer /usr/bin/composer
(替代方案)在composer.json中指定目标https://getcomposer.org/doc/06-config.md#platform/%E6%89%A9%E5%B1%95%EF%BC%9A
json{ "config": { "platform": { "php": "MAJOR.MINOR.PATCH", "ext-something": "MAJOR.MINOR.PATCH" } } }
(不推荐)向install或update传递https://getcomposer.org/doc/03-cli.md#install-i%E5%92%8C/%E6%88%96%60--no-scripts%60%E6%A0%87%E5%BF%97%EF%BC%9A
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: docker.xuanyuan.run/composer:latest volumes: - .:/app - ${COMPOSER_HOME:-$HOME/.composer}:/tmp user: ${UID:-1000}:${GID:-1000} command: install
https://github.com/composer/docker/issues?q=
查看此镜像中包含的软件的https://github.com/composer/composer/blob/master/LICENSE%E3%80%82
与所有Docker镜像一样,这些镜像可能还包含其他可能在其他许可证下的软件(例如基础发行版中的Bash等,以及包含的主要软件的任何直接或间接依赖项)。
一些能够自动检测到的其他许可证信息可能位于https://github.com/docker-library/repo-info/tree/master/repos/composer%E4%B8%AD%E3%80%82
至于任何预构建镜像的使用,镜像用户有责任确保对本镜像的任何使用都符合其中包含的所有软件的相关许可证。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 composer 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: