本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

DrupalCI Docker镜像是专为Drupal项目设计的持续集成(CI)工具容器化解决方案,基于drupal.org/project/drupalci项目构建。该镜像封装了Drupal项目自动化测试所需的完整环境,支持多种测试类型(单元测试、功能测试、集成测试等),并兼容不同版本的PHP和Drupal核心,旨在简化Drupal模块、主题及核心代码的测试流程,提升开发效率和代码质量。
从Docker Hub拉取官方镜像(默认标签为latest,建议指定具体版本以确保稳定性):
docker pull drupalci/drupalci:latest # 或指定版本(如支持Drupal 10的稳定版) docker pull drupalci/drupalci:10.x
docker run)通过docker run命令直接运行测试,需挂载本地Drupal项目目录至容器内,并通过环境变量指定测试参数。
基本语法:
docker run --rm \ -v /本地项目路径:/app \ # 挂载项目代码到容器内/app目录 -e 环境变量=值 \ # 配置测试环境(如PHP版本、测试类型等) drupalci/drupalci \ # 镜像名称 /app/vendor/bin/phpunit # 执行测试命令(或使用内置测试脚本)
docker-compose配置对于复杂测试场景(如依赖数据库、Redis等服务),可通过docker-compose.yml定义完整环境。
示例配置:
version: '3.8' services: drupalci: image: drupalci/drupalci:10.x volumes: - ./my_drupal_module:/app # 挂载本地模块代码 environment: - PHP_VERSION=8.2 # 指定PHP版本(支持7.4-8.3) - DRUPAL_VERSION=10.1 # 指定Drupal核心版本 - TEST_TYPE=functional # 测试类型:unit/functional/integration - DB_TYPE=mysql # 数据库类型:mysql/pgsql/sqlite - DB_HOST=db # 数据库服务地址(对应下方db服务) - DB_USER=root - DB_PASSWORD=secret - DB_NAME=drupal_test depends_on: - db # 依赖mysql服务启动后再执行测试 db: # 测试依赖的MySQL服务 image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=drupal_test ports: - "3306:3306"
启动服务并执行测试:
docker-compose up --build # 构建并启动服务,自动执行测试
| 环境变量 | 作用描述 | 默认值 | 可选值 |
|---|---|---|---|
PHP_VERSION | PHP运行版本 | 8.1 | 7.4, 8.0, 8.1, 8.2, 8.3 |
DRUPAL_VERSION | Drupal核心版本 | 10.0 | 8.9, 9.5, 10.0, 10.1, 10.2 |
TEST_TYPE | 测试类型 | unit | unit, functional, integration, behat |
DB_TYPE | 数据库类型 | sqlite | mysql, pgsql, sqlite |
DB_HOST | 数据库服务地址(非sqlite时必填) | localhost | - |
DB_USER | 数据库用户名 | drupal | - |
DB_PASSWORD | 数据库密码 | drupal | - |
TEST_REPORT_PATH | 测试报告输出路径 | /app/reports | 容器内绝对路径 |
若需执行自定义测试流程(如前置命令、多步骤测试),可在项目根目录创建drupalci-test.sh脚本,并挂载至容器执行:
# 本地脚本示例(drupalci-test.sh) #!/bin/bash # 安装依赖 composer install --working-dir=/app # 执行单元测试 /app/vendor/bin/phpunit --configuration /app/phpunit.xml # 执行功能测试 /app/vendor/bin/behat --config /app/behat.yml
通过容器运行自定义脚本:
docker run --rm \ -v $(pwd):/app \ -e PHP_VERSION=8.2 \ drupalci/drupalci \ bash /app/drupalci-test.sh
场景:验证本地模块在PHP 8.2和Drupal 10.1环境下的单元测试。
命令:
docker run --rm \ -v $(pwd)/my_module:/app \ -e PHP_VERSION=8.2 \ -e DRUPAL_VERSION=10.1 \ -e TEST_TYPE=unit \ drupalci/drupalci \ /app/vendor/bin/phpunit --testsuite Unit
docker-compose运行功能测试(依赖MySQL)场景:测试模块在Drupal 10 + MySQL 8.0环境下的功能测试。
docker-compose.yml配置:
version: '3.8' services: drupalci: image: drupalci/drupalci:10.x volumes: - ./my_module:/app environment: - PHP_VERSION=8.2 - DRUPAL_VERSION=10.1 - TEST_TYPE=functional - DB_TYPE=mysql - DB_HOST=db - DB_USER=root - DB_PASSWORD=secret - DB_NAME=drupal_test depends_on: - db db: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=secret - MYSQL_DATABASE=drupal_test healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 5
启动测试:
# 构建并启动服务,自动执行功能测试 docker-compose up
10.x),避免latest标签自动更新导致兼容性问题。--memory=2g参数限制。TEST_REPORT_PATH(如/app/reports),需通过卷挂载本地目录获取报告文件。--network=host)或添加DNS解析。-u $(id -u):$(id -g)参数指定容器用户ID。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429