我们有一个大型的多模块 Maven 项目,它使用 Cargo 来启动 Tomcat 并进行一些 war ,使用一个插件在 Postgres 数据库中插入 sql 数据,然后使用 Cucumber 运行集成测试套件。
我读了很多关于 Docker 的文章,我可以尝试一下它。这是我的问题,
Docker 可以替代我使用 Cargo 的集成测试吗?
有什么好处?
与使用 cargo 部署相比,性能如何?
使用 postgres 和 tomcat 镜像启动容器的套件能否缩短构建时间?
希望有人可以帮助我,因为我对 docker 非常满意!
最佳答案
- Docker 可以替代我使用 Cargo 的集成测试吗?
是的Continuous Integration Using docker 。这个 jetty 容器可能会派上用场。
- 与使用 Cargo 进行部署相比,性能如何?
性能大致相同,启动速度可能会稍慢一些,具体取决于您在 Docker 容器中执行的操作。 Docker 更多的是关于隔离和可重复性而不是性能。它的性能比虚拟机高得多,但并不比 native 主机上的 Cargo 更好。
- 使用 postgres 和 tomcat 镜像启动容器的套件能否缩短构建时间
也许,取决于您目前在做什么。您可以在 Docker 容器中创建一个已知状态,如果您之前手动创建该状态,那么您可能会发现构建速度更快。
Docker 的真正好处是,您可以在 Postgres 数据库中拥有众所周知的状态,并且测试始终针对该已知状态运行。此外,您不必让团队中的每个人都在本地安装 Postgres。他们只需要安装 Docker,剩下的就会自动化。请经常将 Docker 与 Vagrant 结合使用,这样即使安装 Docker 也可以脚本化和自动化。
关于Java Maven 项目 Docker 集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26384622/