我应该在Docker镜像中包含测试吗?

时间:2018-01-23 01:01:40

标签: unit-testing docker testing automated-tests

在测试方面,我可以考虑两个选择:

  1. 将测试和应用程序放在一张图像中。
  2. 仅在图像中包含应用程序代码。创建一个特定于测试的容器,该容器在主映像之后构建并向其添加一些层(测试代码,依赖项等)。
  3. 使用第一个选项,我可以测试容器并按照测试的方式运送它。一个明显的缺点是图像中将包含不必要的代码(以及潜在的测试数据)。

    使用第二个选项时,出厂的图像与测试的图像不完全相同。

    两者看起来都是糟糕的策略。还有第三种更好的策略吗?

1 个答案:

答案 0 :(得分:0)

最好的选择是让测试根本不在容器中运行。通常,您只希望在测试通过后部署您的应用程序,因此创建一个将运行测试的脚本,并在它们通过后为您的应用构建映像。这是圈子CI等CI工具的常见情况,他们将在自己创建的环境中运行测试,如果全部通过,则运行部署脚本,构建图像并部署应用程序。