You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 09:24:04