本镜像专为Drupal的贡献模块/主题设计,旨在简化模块/主题的测试流程。与其他集成Docker到完整Drupal项目的镜像不同,本镜像专注于为贡献模块/主题提供容器化环境,帮助开发者避免手动搭建完整Drupal环境的繁琐步骤,支持手动或自动化测试。
| 标签和Dockerfile | Drupal版本 |
|---|---|
11.3 (Dockerfile) | 11.3-dev |
11.2 (Dockerfile) | 11.2.x |
11.1 (Dockerfile) | 11.1.x |
11.0 (Dockerfile) | 11.0.x |
10.6 (Dockerfile) | 10.6-dev |
10.5 (Dockerfile) | 10.5.x |
10.4 (Dockerfile) | 10.4.x |
10.3 (Dockerfile) | 10.3.x |
10.2 (Dockerfile) | 10.2.x |
10.1 (Dockerfile) | 10.1.x |
10.0 (Dockerfile) | 10.0.x |
9.5 (Dockerfile) | 9.5.x |
Docker Hub上已有许多Drupal镜像,它们的共同目标是将Docker集成到完整的Drupal项目中。
本镜像则截然不同:我们不解决Docker与Drupal的集成问题,而是提供为贡献模块/主题设置Docker的解决方案。
许多开发者在创建出色模块时,需要手动搭建完整的Drupal 8/9环境并将自定义模块/主题 symlink 到其中,测试过程繁琐。本Docker镜像通过提供容器化的Drupal 8/9/10/11环境,高度简化这一流程,用于模块/主题贡献项目的手动或自动化测试。
在仓库根目录创建Dockerfile:
dockerfileARG BASE_IMAGE_TAG=10.4 FROM wengerk/drupal-for-contrib:${BASE_IMAGE_TAG}
在仓库根目录创建docker-compose.yml:
yamlservices: drupal: build: . depends_on: - db ports: - 8888:80 volumes: # 将模块挂载到正确的贡献模块目录 - .:/var/www/html/modules/contrib/my_module restart: always db: image: mariadb:10.6 environment: MYSQL_USER: drupal MYSQL_PASSWORD: drupal MYSQL_DATABASE: drupal MYSQL_ROOT_PASSWORD: root restart: always
注意:更新挂载的volume名称以匹配你的自定义模块名称。
shell$ docker-compose build --pull --build-arg BASE_IMAGE_TAG=10.4 drupal $ docker-compose up -d drupal # 等待Docker就绪,尤其是MariaDB需要几秒启动时间 $ docker-compose exec -u www-data drupal drush site-install standard --db-url="mysql://drupal:drupal@db/drupal" --site-name=Example -y
shelldocker-compose exec -u www-data drupal phpunit --no-coverage --group=my_module --configuration=/var/www/html/phpunit.xml
在仓库根目录创建.travis.yml:
yamllanguage: php services: - docker env: global: # 要在Docker中挂载和测试的模块名称 - MODULE_NAME="my_module" jobs: include: - name: D8.9 env: BASE_IMAGE_TAG="8.9" - name: D9.0 env: BASE_IMAGE_TAG="9.0" - name: D10.0 env: BASE_IMAGE_TAG="10.0" - name: D11.0 env: BASE_IMAGE_TAG="11.0" before_install: - docker-compose build --pull --build-arg BASE_IMAGE_TAG=${BASE_IMAGE_TAG} drupal - docker-compose up -d drupal # 等待Docker就绪,尤其是MariaDB需要几秒启动 - docker-compose exec drupal wait-for-it drupal:80 -t 60 - docker-compose exec drupal wait-for-it db:3306 -t 60 before_script: - docker-compose exec -u www-data drupal drush site-install standard --db-url="mysql://drupal:drupal@db/drupal" --site-name=Example -y script: - docker-compose exec -u www-data drupal phpunit --no-coverage --group=${MODULE_NAME} --configuration=/opt/drupal/web/phpunit.xml
yamlname: Continuous integration on: [push] jobs: tests: name: Tests runs-on: ubuntu-latest strategy: matrix: drupal_version: ['8.9', '9.0', '9.1', '10.0', '10.1', '10.2', '11.0'] module: ['my_module'] experimental: [ false ] include: - drupal_version: '10.3' module: 'my_module' experimental: true - drupal_version: '11.1' module: 'my_module' experimental: true steps: - uses: actions/checkout@v3 - run: docker-compose -f docker-compose.yml pull --include-deps drupal - name: 构建docker-compose堆栈 run: docker-compose -f docker-compose.yml build --pull --build-arg BASE_IMAGE_TAG=${{ matrix.drupal_version }} drupal continue-on-error: ${{ matrix.experimental }} - name: 运行单元测试 run: docker-compose -f docker-compose.yml run -u www-data drupal phpunit --no-coverage --group=${{ matrix.module }} --configuration=/var/www/html/phpunit.xml continue-on-error: ${{ matrix.experimental }}

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429