首页
/ 使用Docker Compose部署blueimp/jQuery-File-Upload测试环境指南

使用Docker Compose部署blueimp/jQuery-File-Upload测试环境指南

2025-07-05 04:37:39作者:董斯意

概述

blueimp/jQuery-File-Upload是一个功能强大的文件上传组件,支持多文件选择、拖放上传、进度条显示、图片预览等功能。为了确保组件在不同环境下的稳定性和兼容性,项目提供了完整的Docker测试环境配置。本文将详细解析项目中的docker-compose.yml文件,帮助开发者理解如何快速搭建测试环境。

环境组成

该Docker Compose配置定义了一个完整的测试环境,包含以下服务组件:

  1. example服务 - 主应用服务
  2. mocha服务 - 测试运行器
  3. chromedriver服务 - Chrome浏览器驱动
  4. geckodriver服务 - Firefox浏览器驱动
  5. wdio服务 - WebDriverIO测试框架

详细配置解析

example服务配置

example:
  build: server/php
  ports:
    - 127.0.0.1:80:80
  volumes:
    - .:/var/www/html
  • build: 使用server/php目录下的Dockerfile构建镜像
  • ports: 将容器80端口映射到主机的80端口,仅限本地访问
  • volumes: 将当前目录挂载到容器的/var/www/html目录,实现代码热更新

mocha测试服务

mocha:
  image: blueimp/mocha-chrome
  command: http://example/test
  environment:
    - WAIT_FOR_HOSTS=example:80
  depends_on:
    - example
  • 使用预构建的mocha-chrome镜像
  • 自动访问http://example/test执行测试
  • 等待example服务启动完成后再运行测试

浏览器驱动服务

项目配置了两个浏览器驱动服务,分别用于Chrome和Firefox:

chromedriver服务

chromedriver:
  image: blueimp/chromedriver
  tmpfs: /tmp
  environment:
    - DISABLE_X11=false
    - ENABLE_VNC=true
    - EXPOSE_X11=true
  volumes:
    - ./wdio/assets:/home/webdriver/assets:ro
  ports:
    - 127.0.0.1:5900:5900

geckodriver服务

geckodriver:
  image: blueimp/geckodriver
  tmpfs: /tmp
  shm_size: 2g
  environment:
    - DISABLE_X11=false
    - ENABLE_VNC=true
    - EXPOSE_X11=true
  volumes:
    - ./wdio/assets:/home/webdriver/assets:ro
  ports:
    - 127.0.0.1:5901:5900

共同特点:

  • 都启用了X11和VNC支持,可通过VNC客户端查看浏览器测试过程
  • 挂载测试资源目录为只读
  • 使用tmpfs提高性能
  • 映射不同端口避免冲突(5900和5901)

wdio测试框架服务

wdio:
  image: blueimp/wdio
  read_only: true
  tmpfs:
    - /tmp
  environment:
    - WAIT_FOR_HOSTS=chromedriver:4444 geckodriver:4444 example:80
    - WINDOWS_HOST
    - MACOS_ASSETS_DIR=$PWD/wdio/assets/
    - WINDOWS_ASSETS_DIR
  volumes:
    - ./wdio:/app:ro
    - ./wdio/reports:/app/reports
  depends_on:
    - chromedriver
    - geckodriver
    - example
  • 以只读模式运行,增强安全性
  • 等待所有依赖服务就绪
  • 挂载测试脚本和报告目录
  • 支持跨平台环境变量配置

使用指南

  1. 确保已安装Docker和Docker Compose
  2. 在项目根目录执行 docker-compose up
  3. 测试完成后,可通过以下方式查看结果:
    • 控制台输出
    • wdio/reports目录下的测试报告
    • 通过VNC客户端连接查看浏览器测试过程

最佳实践

  1. 调试技巧:遇到问题时,可以单独启动某个服务进行调试
  2. 资源优化:根据测试需求调整shm_size等参数
  3. 安全建议:生产环境应移除VNC等调试功能
  4. 持续集成:此配置可直接用于CI/CD流程

总结

通过这份docker-compose.yml配置,blueimp/jQuery-File-Upload项目提供了一个完整的、可复现的测试环境,涵盖了PHP服务、测试框架和主流浏览器支持。这种容器化的测试方案不仅保证了测试环境的一致性,也大大简化了开发者的环境搭建工作。