
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
这是一个基于官方Drupal镜像的Docker容器及模板,用于测试单个Drupal模块,支持以下功能:
若需测试整个Drupal站点而非单个模块,请参考https://github.com/juampynr/d8cidemo%E9%A1%B9%E7%9B%AE%E3%80%82
可参考https://github.com/deviantintegral/drupal_tests_node_example%E4%BA%86%E8%A7%A3%E6%A8%A1%E6%9D%BF%E7%9A%84%E5%AE%9E%E9%99%85%E9%85%8D%E7%BD%AE%EF%BC%8C%E4%BB%A5%E5%8F%8ACircleCI%E4%B8%AD%E5%90%84%E4%BD%9C%E4%B8%9A%E7%9A%84%E6%8A%A5%E5%91%8A%E6%95%88%E6%9E%9C%EF%BC%9Bhttps://github.com/nodespark/elasticsearch_connector%E6%A8%A1%E5%9D%97%E4%B9%9F%E6%98%AF%E4%BD%BF%E7%94%A8%E8%AF%A5%E6%A8%A1%E6%9D%BF%E7%9A%84%E5%85%B8%E5%9E%8B%E6%A1%88%E4%BE%8B%E3%80%82
bash -c "$(curl -fsSL https://github.com/deviantintegral/drupal_tests/raw/master/setup.sh)"。COMPOSER_AUTH环境变量(参考https://getcomposer.org/doc/03-cli.md#composer-auth%EF%BC%89%E3%80%82.circleci目录,并在运行步骤中复制到项目根目录。例如覆盖hooks/code-sniffer.sh:
yaml- run: working_directory: /var/www/html command: | cp ./modules/$CIRCLE_PROJECT_REPONAME/.circleci/code-sniffer.sh /var/www/html ./code-sniffer.sh $CIRCLE_PROJECT_REPONAME
若已执行setup.sh,以下步骤已自动完成:
templates/module下的所有文件和目录复制到模块根目录。phpunit.core.xml.dist,替换my_module为模块名称,设置覆盖率报告的白名单路径。tests/src/Behat中替换my_module和MyModule为模块名称。shcomposer require --dev --no-update \ behat/mink-selenium2-driver \ drupal/coder \ drupal/drupal-extension \ bex/behat-screenshot \ phpmd/phpmd \ phpmetrics/phpmetrics
单元测试、Kernel测试、功能测试遵循Drupal贡献模块的目录结构,若Drupal测试机器人可运行你的测试,该容器也可支持。测试通过run-tests.sh执行,需确保每个测试类有正确的@group注解,基础类无需注解,且测试位于正确命名空间。目前暂不支持FunctionalJavascript测试(建议用Behat替代)。
Behat测试不在drupal.org上运行,需将测试放在tests/src/Behat目录下,结构如下:
tests/src/Behat
behat.ymlfeatures/
my_module_settings.featurebootstrap/
MyModuleFeatureContext.php本地运行Behat场景时,需从Drupal根目录使用绝对路径指向配置:
shvendor/bin/behat -v -c $(pwd)/modules/my_module/tests/src/Behat/behat.yml
Behat配置使用Selenium、Chrome及VNC服务器。若CI提供容器SSH访问,可转发端口进行调试:
ssh命令 -L8080:localhost:80 -L5900:localhost:5900。http://localhost:8080查看站点,通过drush user-login登录:
shcd /var/www/html vendor/bin/drush -l localhost:8080 user-login
localhost:5900,密码为secret,可观察Chrome执行测试过程。phpunit.core.xml.dist会复制到Drupal的core目录,可根据模块需求编辑该文件。
如需对Drupal或依赖项应用补丁,编辑patches.json(格式参考https://github.com/cweagans/composer-patches%EF%BC%89%E3%80%82
运行setup.sh可更新到最新模板,需保留自定义修改:
shgit checkout -b update-circleci bash -c "$(curl -fsSL https://github.com/deviantintegral/drupal_tests/raw/master/setup.sh)" git add -p # 选择需保留的更改 git checkout -p # 撤销不需要的更改 git status # 检查新增文件 git commit
容器基于Drupal稳定分支(如8.3.x)构建,确保使用最新安全补丁。若需测试新Drupal版本:
FROM drupal:8.4-apache)。docker build -t drupal-8.4-test .。.circleci/config.yml的镜像为drupal-8.4-test。circleci build --job run-unit-kernel-tests。config.yml指向新标签。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务