从哲学上讲,应该测试每个软件,有没有办法测试Docker撰写文件?
我们已经知道Docker建议使用sut
服务测试单个容器的Dockerfile的方法:
https://docs.docker.com/docker-hub/builds/automated-testing/
但是,通常将几个容器组装成services
文件的docker-compose.yml
。但是,我们尚不知道实施这种测试的任何“推荐”方法(官方文档或社区)。
天真的,我们可以像这样写一些docker-compose.stacktest.yml
:
version: '3.5'
services:
stacktest:
image: my-test-image
command: test.sh
然后运行类似于:
docker stack deploy -c docker-compose.yml -c docker-compose.stacktest.yml tester
但是我们有兴趣看看是否有更普遍的东西吗?
答案 0 :(得分:0)
我将采用的方法之一是使用testcontainers-java https://github.com/testcontainers/testcontainers-java 它具有运行docker-compose文件的功能 https://www.testcontainers.org/modules/docker_compose/
想法可能是用Java编写一堆运行docker-compose的测试并在其上写断言。
我从未为此目的尝试过testcontainers-java,但我认为它将起作用