
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本Docker镜像(jakzal/phpqa)是一个集成了多种PHP静态分析与代码质量工具的环境,旨在为PHP项目提供便捷、一致的代码质量检查解决方案。通过Docker容器化技术,用户无需在本地或服务器环境中手动安装和配置各类工具,即可快速进行代码静态分析、代码风格检查、漏洞检测等质量保障工作。该镜像广泛适用于本地开发、CI/CD流程及多项目统一质量标准场景。
包含多种主流PHP代码质量与静态分析工具,主要包括:
8.3、8.2、8.1)提供不同PHP版本环境,适配项目需求。php-cs-fixer fix)或静态类型分析(如phpstan analyze),提前发现问题。-v参数挂载)。通过docker run命令直接运行容器,挂载项目目录并执行目标工具。基本语法:
bashdocker run --rm -v $(pwd):/app jakzal/phpqa:<tag> <tool> [arguments]
参数说明
--rm:容器退出后自动删除,避免残留临时容器。-v $(pwd):/app:将当前目录(项目根目录)挂载到容器内的/app目录(工具默认工作目录)。<tag>:指定PHP版本标签(如8.3、8.2,默认标签为最新稳定PHP版本)。<tool>:目标工具名称(如phpstan、psalm、phpcs等)。[arguments]:工具运行参数(如分析目录、配置文件路径等)。常用工具示例
1. PHPStan静态类型分析
分析项目src目录,使用本地phpstan.neon配置:
bashdocker run --rm -v $(pwd):/app jakzal/phpqa:8.3 phpstan analyze src --configuration=phpstan.neon
2. PHP-CS-Fixer代码风格修复
修复当前目录下所有PHP文件的代码风格,使用本地.php-cs-fixer.php配置:
bashdocker run --rm -v $(pwd):/app jakzal/phpqa:8.3 php-cs-fixer fix --config=.php-cs-fixer.php
3. PHPMD代码复杂度检测
分析src目录,输出XML格式报告:
bashdocker run --rm -v $(pwd):/app jakzal/phpqa:8.3 phpmd src xml cleancode,codesize,controversial,design,naming,unusedcode
通过docker-compose.yml定义服务,简化多工具组合使用或频繁调用场景:
yamlversion: '3.8' services: phpqa: image: jakzal/phpqa:8.3 volumes: - ./:/app # 挂载项目目录 - ./phpstan.neon:/app/phpstan.neon # 挂载工具配置文件(可选) - ./vendor:/app/vendor # 挂载Composer依赖(加速分析,可选) working_dir: /app # 容器工作目录 # 可添加环境变量(如工具缓存目录) environment: - PHPQA_CACHE_DIR=/app/.phpqa-cache # 工具缓存路径(需本地创建目录)
使用时通过docker-compose run执行工具:
bashdocker-compose run --rm phpqa psalm --show-info=true
镜像支持部分环境变量自定义工具行为(具体以镜像最新版本为准):
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
PHPQA_CACHE_DIR | 工具缓存目录(如PHPStan、Psalm缓存) | /tmp/phpqa-cache |
COMPOSER_HOME | Composer配置与缓存目录 | /tmp/composer |
PHP_INI_DIR | PHP配置文件目录(自定义php.ini) | /usr/local/etc/php |
大部分工具依赖项目内的配置文件(如phpstan.neon、.php-cs-fixer.php、psalm.xml),需确保配置文件通过-v挂载到容器内的/app目录(即项目根目录)。例如:
bash# 挂载本地phpstan.neon到容器内,使PHPStan使用自定义规则 docker run --rm -v $(pwd):/app -v $(pwd)/phpstan.neon:/app/phpstan.neon jakzal/phpqa:8.3 phpstan analyze
root用户运行工具,可能导致生成的缓存文件/修复后的文件权限为root。本地开发时可通过-u $(id -u):$(id -g)参数指定当前用户ID,避免权限冲突:
bashdocker run --rm -u $(id -u):$(id -g) -v $(pwd):/app jakzal/phpqa:8.3 php-cs-fixer fix
jakzal/phpqa@sha256:...)。vendor目录中的类定义,建议挂载本地vendor目录(或在容器内运行composer install)以确保分析准确性。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务