curl: (7)Failed connect to ip:port;Connection timed out returned a non-zero code: 7
问题现象
负责安全测试的同学需要部署洞态 IAST,通过 java 探针的方式附加到应用服务上,在项目下添加了一个 Dockerfile 文件:
FROM prasadlvi/openjdk-11-jre
WORKDIR /home
ENV TZ 'Asia/Shanghai'
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
ARG renv
ENV renv=${renv}
COPY service/target/*.jar /home
RUN curl -LJO "http://ip:port/openapi/api/v1/agent/download?url=http://ip:port/openapi&language=java" -H "Authorization: Token 7475b7dfb0abdea8acbf77161b4f2d2276322997" -o /home/agent/dongtai-agent.jar -k
ENTRYPOINT java -javaagent:"/home/agent/dongtai-agent.jar" -Dengine.name='project' -jar -server -Xms1g -Xmx1g -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/error_data *.jar --spring.profiles.active=$renv
提交到 GitLab 之后,WebHook 触发 Jenkins 拉取源码、编译,在构建镜像的时候报错:
看日志是连接 dongtai 服务器超时。
问题分析
最初怀疑是构建镜像的机器,禁用了指定的 port 端口。
找到另一台构建机器,iptables
禁用 port 端口,复现过一次,后面怎么都复现不了。
试了一天,最后测试同学发现,dongtai 服务端的 token 超时后,能复现问题。
问题原因
toekn 过期导致 dongtai 客户端无法注册到服务端。
Agent 每分钟向 Dongtai OpenAPI 服务发送心跳数据,若 Dongtai OpenAPI 服务 2 分钟未收到心跳,则 Agent 被判定为停止。
解决方案
将下载 dongtai-agent.jar 的命令放到 Jenkins 流水线脚本中:
curl -LJO "http://ip:port/openapi/api/v1/agent/download?url=http://ip:port/openapi&language=java" -o /home/agent/dongtai-agent.jar -k
同时去除 Dockerfile 中的 RUN curl
命令。
本文作者:ageovb
本文链接:https://www.cnblogs.com/ageovb/p/16745695.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
,
标签:
,
,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律