如何测试Docker容器本身

问题描述 投票:0回答:1

我熟悉了docker,我认为这是一个非常棒的工具。

但是,我有时会做一些小错字导致容器无法运行或运行状态不佳,而且经常需要一段时间才能找到问题。有关于如何使用docker进行测试的文章很棒。但是在开始测试在docker容器中运行的目标应用程序之前,我想检查一下安装的构建和运行是否成功,换句话说就是编写测试以检查“准备好测试”(这些测试可能是但是,重新用于检查生产准备情况,这可能需要更多功能,如功能和性能测试)。令人惊讶的是,我几乎找不到关于如何测试docker容器基础结构本身的文章。

我正在考虑的是找到策略和最佳实践来测试构建和运行任何docker基础结构所做的任何事情,即创建映像,运行容器,组合,swarm等。这将包括检查是否需要所有文件和资源被复制到正确的位置,网络中所需的服务器启动并运行,并在正确的端口上给出预期的答案,并最终测试是否在性能测量方面做得很好。

因此,我想询问社区是否有人已经开始做这样的事情,如果互联网上有公共场所可以跟随,或者是否有人有兴趣建立这样一个网站。

docker testing qa
1个回答
0
投票

这是我使用docker的工作流程,也许它可以帮助你:

  1. 所有代码都是在类似于生产环境的docker-compose环境下开发的(存储除外,它使用Cloudstor管理AWS上的卷)
  2. 在发布版本之前,所有自动化测试必须为绿色。 [重要]
  3. 基于此版本构建docker镜像只包含www之类的nginx。此图像保留在私有存储库中。
  4. 其他码头图像用于:databasecachelog stack。我总是使用此容器的基本映像并仅自定义一些配置文件。
  5. Docker Compose文件使用新的www图像标记进行换出。
  6. 重新加载Docker Compose项目(pull && down && up)
  7. 由于www图像在构建之前已经过测试,我可以依赖它,因为其他容器都是UP,我的应用程序应该可以工作。
  8. 我有一些测试端点,我可以在重新加载项目后检查。此端点测试databasecache和其他服务是否按预期运行,并返回200或500状态代码。
  9. 在重新加载之前,我总是放下应用程序,在数据库和存储上运行备份脚本
  10. 我有一个bash脚本来为我做所有这些事情,使所有这些过程更快。

我使用的这种方法几乎是防错的,但是在任何改变之后它需要一些关于测试所有内容的规则。使用自动化测试(编写良好的测试)至关重要,所有这些过程都可以使用持续集成工具自动化所有内容。

我正在使用这个过程,因为我在一年前迁移到生产的docker,至少发布了100个版本没有问题。

© www.soinside.com 2019 - 2024. All rights reserved.