【问题标题】:How to run curl --retry command in GitLab-ci.yml如何在 GitLab-ci.yml 中运行 curl --retry 命令
【发布时间】:2021-02-10 04:28:06
【问题描述】:

我正在尝试在 GitLab-ci 管道中运行 curl --retry 命令,但它在管道中失败,但是当我尝试在其他地方运行它时它工作正常。

我正在尝试检查我的 url 是否启动,这将一直运行到我的 url 启动,然后我的脚本的其余部分运行以配置我的应用程序

curl -Is -k --retry 50 --retry-delay 0 --retry-connrefused https://{URL} -vvv

  • 正在尝试 127.0.1.1:8443...
  • TCP_NODELAY 设置
  • 连接到 {url} (127.0.1.1) 端口 8443 (#0)
  • ALPN,提供 h2
  • ALPN,提供 http/1.1
  • 成功设置证书验证位置:
  • CA 文件:/etc/ssl/certs/ca-certificates.crt CApath:/etc/ssl/certs } [5 字节数据]
  • TLSv1.3 (OUT)、TLS 握手、客户端问候 (1): } [512 字节数据]
  • OpenSSL SSL_connect:SSL_ERROR_SYSCALL 连接到 {url}
  • 关闭连接 0 清理基于文件的变量 错误:作业失败:退出状态 1

我认为这里发生了什么,当我们为每次重试运行 curl --retry 时,它会关闭连接并重新启动它,这就是我的管道中断的地方,我无法弄清楚如何处理这个问题。 是否有任何解决方法可以在管道中执行此操作。

【问题讨论】:

    标签: ssl curl gitlab-ci


    【解决方案1】:

    您可以使用简单的 bash 脚本并检查 curl 返回值:

    while true; do if curl --location 'http://localhost:8080'; then break; else sleep 1; fi; done
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-14
      • 2018-12-06
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      相关资源
      最近更新 更多