1. 项目概述
TestLink是一款开源的测试管理工具,用于管理软件测试过程中的测试用例、测试计划和测试执行结果。使用Docker-compose搭建TestLink环境能够快速部署一套完整的测试管理系统,避免了传统安装方式中繁琐的依赖配置和环境准备过程。
2. 环境准备
2.1 系统要求
- 操作系统:支持Linux、Windows或macOS
- Docker版本:18.06.0+
- Docker-compose版本:1.25.0+
- 硬件配置:至少2GB内存,20GB磁盘空间
2.2 安装Docker和Docker-compose
对于Ubuntu系统,可以执行以下命令安装最新版Docker和Docker-compose:
# 安装Docker sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io # 安装Docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose注意:不同操作系统安装方式可能有所不同,请参考官方文档进行安装。
3. Docker-compose文件配置
3.1 基础配置
创建一个docker-compose.yml文件,内容如下:
version: '3' services: testlink-db: image: mariadb:10.5 container_name: testlink-db environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: testlink MYSQL_USER: testlink MYSQL_PASSWORD: testlinkpassword volumes: - testlink-db-data:/var/lib/mysql networks: - testlink-net testlink: image: bitnami/testlink:1.9.20 container_name: testlink depends_on: - testlink-db ports: - "8080:8080" - "8443:8443" environment: - TESTLINK_DATABASE_HOST=testlink-db - TESTLINK_DATABASE_PORT_NUMBER=3306 - TESTLINK_DATABASE_USER=testlink - TESTLINK_DATABASE_PASSWORD=testlinkpassword - TESTLINK_DATABASE_NAME=testlink - TESTLINK_USERNAME=admin - TESTLINK_PASSWORD=admin123 volumes: - testlink-data:/bitnami/testlink networks: - testlink-net volumes: testlink-db-data: testlink-data: networks: testlink-net: driver: bridge3.2 配置说明
testlink-db服务使用MariaDB 10.5作为数据库testlink服务使用bitnami提供的TestLink 1.9.20镜像- 默认管理员账号为admin/admin123
- 服务暴露8080(HTTP)和8443(HTTPS)端口
4. 启动与初始化
4.1 启动服务
执行以下命令启动服务:
docker-compose up -d4.2 服务状态检查
检查服务是否正常运行:
docker-compose ps预期输出应显示两个容器的状态为"Up"。
4.3 初始化配置
- 访问http://localhost:8080
- 使用默认管理员账号登录(admin/admin123)
- 首次登录后建议修改管理员密码
- 根据向导完成基本配置
5. 常见问题与解决方案
5.1 端口冲突
如果8080或8443端口已被占用,可以修改docker-compose.yml中的端口映射:
ports: - "8081:8080" - "8444:8443"5.2 数据库连接问题
如果TestLink无法连接数据库,检查:
- 数据库容器是否正常运行
- 环境变量配置是否正确
- 数据库用户权限是否足够
5.3 性能优化
对于大型项目,可以调整以下参数:
- 增加PHP内存限制
- 优化MySQL配置
- 考虑使用Redis缓存
6. 数据备份与恢复
6.1 备份数据库
docker exec testlink-db sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > backup.sql6.2 恢复数据库
cat backup.sql | docker exec -i testlink-db sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"'6.3 备份应用数据
docker run --rm --volumes-from testlink -v $(pwd):/backup busybox tar cvf /backup/testlink-backup.tar /bitnami/testlink7. 安全配置建议
7.1 修改默认密码
强烈建议修改以下默认密码:
- MySQL root密码
- TestLink管理员密码
- TestLink数据库用户密码
7.2 启用HTTPS
建议配置Nginx反向代理并启用HTTPS,或使用Let's Encrypt证书。
7.3 定期更新
定期检查并更新Docker镜像版本,获取安全补丁。
8. 扩展功能
8.1 集成LDAP认证
可以通过修改config.inc.php文件集成LDAP认证:
$tlCfg->authentication['method'] = 'LDAP'; $tlCfg->authentication['ldap_server'] = 'ldap://your-ldap-server'; $tlCfg->authentication['ldap_port'] = 389;8.2 邮件通知配置
配置SMTP设置以启用邮件通知功能:
$tlCfg->smtp['host'] = 'smtp.example.com'; $tlCfg->smtp['port'] = 587; $tlCfg->smtp['auth'] = true; $tlCfg->smtp['username'] = 'your-email@example.com'; $tlCfg->smtp['password'] = 'your-password';9. 维护与监控
9.1 日志查看
查看容器日志:
docker-compose logs -f9.2 资源监控
使用docker stats命令监控资源使用情况:
docker stats testlink testlink-db9.3 定期维护
建议定期执行以下维护任务:
- 清理旧日志
- 优化数据库
- 备份重要数据
10. 升级TestLink版本
10.1 升级步骤
- 备份数据和数据库
- 修改docker-compose.yml中的镜像版本
- 执行docker-compose pull获取新镜像
- 执行docker-compose up -d重启服务
10.2 版本兼容性
升级前请检查:
- 新版本与现有数据库的兼容性
- 插件和自定义功能的兼容性
- 官方发布的升级说明
通过以上步骤,您可以快速搭建一套功能完善的TestLink测试管理系统。这种基于Docker-compose的部署方式不仅简化了安装过程,还便于后续的维护和升级。