使用Docker-compose快速部署TestLink测试管理系统

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: bridge

3.2 配置说明

  • testlink-db服务使用MariaDB 10.5作为数据库
  • testlink服务使用bitnami提供的TestLink 1.9.20镜像
  • 默认管理员账号为admin/admin123
  • 服务暴露8080(HTTP)和8443(HTTPS)端口

4. 启动与初始化

4.1 启动服务

执行以下命令启动服务:

docker-compose up -d

4.2 服务状态检查

检查服务是否正常运行:

docker-compose ps

预期输出应显示两个容器的状态为"Up"。

4.3 初始化配置

  1. 访问http://localhost:8080
  2. 使用默认管理员账号登录(admin/admin123)
  3. 首次登录后建议修改管理员密码
  4. 根据向导完成基本配置

5. 常见问题与解决方案

5.1 端口冲突

如果8080或8443端口已被占用,可以修改docker-compose.yml中的端口映射:

ports: - "8081:8080" - "8444:8443"

5.2 数据库连接问题

如果TestLink无法连接数据库,检查:

  1. 数据库容器是否正常运行
  2. 环境变量配置是否正确
  3. 数据库用户权限是否足够

5.3 性能优化

对于大型项目,可以调整以下参数:

  1. 增加PHP内存限制
  2. 优化MySQL配置
  3. 考虑使用Redis缓存

6. 数据备份与恢复

6.1 备份数据库

docker exec testlink-db sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > backup.sql

6.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/testlink

7. 安全配置建议

7.1 修改默认密码

强烈建议修改以下默认密码:

  1. MySQL root密码
  2. TestLink管理员密码
  3. 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 -f

9.2 资源监控

使用docker stats命令监控资源使用情况:

docker stats testlink testlink-db

9.3 定期维护

建议定期执行以下维护任务:

  1. 清理旧日志
  2. 优化数据库
  3. 备份重要数据

10. 升级TestLink版本

10.1 升级步骤

  1. 备份数据和数据库
  2. 修改docker-compose.yml中的镜像版本
  3. 执行docker-compose pull获取新镜像
  4. 执行docker-compose up -d重启服务

10.2 版本兼容性

升级前请检查:

  1. 新版本与现有数据库的兼容性
  2. 插件和自定义功能的兼容性
  3. 官方发布的升级说明

通过以上步骤,您可以快速搭建一套功能完善的TestLink测试管理系统。这种基于Docker-compose的部署方式不仅简化了安装过程,还便于后续的维护和升级。