Gitlab CI/CD流水线中如何捕获curl响应判断应用启动状态
最终适配后的完整GitLab Pipeline配置
stages: - build - deploy - test build: stage: build script: - echo Build Stage 1 tags: - java-run deploy: stage: deploy tags: - java-run script: - "some script" # 这里保留你原来的部署启动脚本即可 test: stage: test tags: - java-run script: # 配置重试参数:最多重试10次,每次间隔3秒,可根据应用启动速度自行调整 - MAX_RETRY=10 - RETRY_INTERVAL=3 - COUNT=0 - | while [ $COUNT -lt $MAX_RETRY ]; do # 仅获取请求响应码,不输出冗余内容 HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:8080 || echo "000") if [ $HTTP_CODE -eq 200 ]; then echo "应用启动校验通过,响应码为200" exit 0 fi echo "第 $((COUNT+1)) 次校验失败,响应码为 $HTTP_CODE,${RETRY_INTERVAL}秒后重试" sleep $RETRY_INTERVAL COUNT=$((COUNT+1)) done - echo "已达到最大重试次数,应用启动校验失败" - exit 1
逻辑说明
- 新增了启动等待重试机制,适配Java应用启动耗时的场景,避免刚部署完就请求导致的误判
- 用
curl命令仅提取响应状态码做判断,不会输出多余的请求响应内容 - 如果最终响应码为200则阶段正常通过,否则重试达到上限后直接标记阶段失败
内容的提问来源于stack exchange,提问作者user17388930
相关产品推荐
相关产品推荐

