使用docker,travis和大型数据库测试自动化

时间:2017-01-26 22:48:57

标签: docker travis-ci

我正在设置一个环境,可以在travis上的docker容器上运行selenium测试。我有一个关于它应该如何工作的概念,但是如果这是正确的方法,我想听听别人的意见:

  1. 将包含nginx,mysql,php的填充程序映像(让我们称之为base-img)推送到我的私有docker注册表
  2. 触发travis进行测试。 Travis应该:
    • 拉基础img
    • 将我的项目文件夹放在base-img
    • 上的正确目录中
    • 创建所需的selenium容器并将其与base-img
    • 链接
    • 开始测试
  3. 在单独的容器上运行nginx,mysql等可能会更好。我们有一个来自我们的托管服务提供商的基本形象,我们打算使用它,因为它应该给我们一个与生产中几乎相同的环境。图像已经安装了所有这些东西。我只需要用导入的数据库创建一个新图像。我打算每天使用生产数据库执行此操作。数据库非常庞大(大约15GB),需要一段时间才能完成。这些大型数据库是否应该用于travis,还是应该被剥离到最低限度?有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

设置本身就是声音。根据我的经验(使用~1.8GB图像)推断一个> 15GB图像(来自hub.docker.com)将花费超过20分钟。这将留下<假设你在travis-ci.org上进行实际测试需要30分钟。反对使用生产DB的另一个论点是测试结果的可重复性。我说你至少应该测试一个不经常变化的数据库作为控制。