问题描述
在项目中构建了大约200个容器,并希望在流水线重建后进行烟雾测试,以检查容器是否仍在运行。
用户希望使用特定参数启动容器,并检查容器是否在指定端口上响应(服务是否正常),或者在容器内运行简单的测试。最好使用docker-compose来启动容器,以便可以轻松配置参数。
以下是对nginx容器的示例:
1. 在容器内运行 “nginx -t” 命令,检查容器是否仍具有有效的配置文件。
2. 检查nginx是否在端口80和443上提供服务。
对于其他容器也是类似的,主要是检查REST服务的端口。在启动容器后,应运行这些测试,然后关闭整个容器。
用户想知道最佳的自动化工具,而不是手动编写所有的测试脚本。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
在CI中,可以使用docker-compose来运行测试。可以设置容器中的IS_TEST
标志,或者使用单独的Dockerfile
来连接测试脚本。这样,只需运行docker-compose build
即可进行测试,并拉取所需的任何依赖项。
方案2
可以使用serverspec来测试nginx是否在指定端口上提供服务。例如:
require 'spec_helper'
describe port(80) do
it { should be_listening }
end
describe port(443) do
it { should be_listening }
end
编写serverspec代码后,可以创建一个脚本来启动nginx,然后运行serverspec,最后销毁nginx容器。
以上是两种常用的自动化工具,可以根据具体需求选择适合的工具来进行测试。
正文完