我在Jenkins管道中使用了Elasticsearch和docker-compose来运行我的测试。Elasticsearch和Node.js服务似乎都可以从Docker正常启动,但通过点击http://elasticsearch:9200/_cat/health?h=st端点执行健康检查会从curl返回状态代码000。在本地docker (带有Docker for Mac的macOS)上运行测试并执行运行状况检查</e
我有一个尝试创建docker镜像的管道,将其上传到docker hub,然后我通过SSH连接到一个EC2实例并运行一个shell脚本,该脚本将下载镜像并启动一个容器。问题是,当shell脚本完成下载docker镜像并尝试启动容器时,管道认为部署成功。但是,容器可能有问题(它是Node JS应用程序,有时会有错误阻止它进行编译)。理想情况下,我希望添加到shell脚本中,以便管道检查以确保容器确实已启动并正在运行。
下面是到目前为止的脚本。我在考虑拉取新启动的容器的状态,看看它是否正在运行或状态为退出代码(1)。ps -a
在微服务部署期间,我使用openshift、docker、springboot和flyway。如果flyway在部署运行状况检查期间使用脚本数据库花费了大量时间,则会抛出此错误: Killing container with id docker//app:Conainter failed liveness