【发布时间】:2019-09-10 12:45:59
【问题描述】:
我正在尝试使用 jenkins 部署到一个节点,即使作业识别该节点,当尝试运行该作业时,该作业会变为挂起并尝试查看该节点的每个环境。
我最近设置了一个新的 jenkins 作业,将一个 Spring Batch 项目部署到服务器上。我们已经有另一个项目部署到同一节点的作业,因此该节点被识别,并且在查看该构建时它确实列出了三个作业。
但是,当尝试运行此新作业时,它会尝试根据我们所有现有标签查找节点(请参阅下面的代码以获取示例输出),但找不到应该运行的实际节点。
我使用的示例是 NEW_BATCH_DEPLOYMENT,列出了在环境中有 3 个作业,两个是尚未运行的新作业,一个是在尝试批处理作业之前运行并成功的作业。
为了调试,我们尝试使用 NEW_BATCH_DEPLOYMENT_2 进行部署,这给我们一个错误“找不到带有标签 NEW_BATCH_DEPLOYMENT_2 的节点”,如果我们删除节点名称,它只会使用我们的默认节点之一运行。
有没有人看到类似的东西,或者有任何解决方案的想法?我已经将新工作与工作工作进行了比较,唯一的区别是部署到何处的文件路径,以及将项目拉下来的 git url。
Jenkins 版本:2.181
(待定—;“Env_1”没有标签“NEW_BATCH_DEPLOYMENT”;“Env_2”没有标签“NEW_BATCH_DEPLOYMENT”;“Env_2”没有标签“NEW_BATCH_DEPLOYMENT”;
我希望它部署到节点,但它只是挂起并挂起,并没有达到输出到 jenkins 控制台的阶段。
如前所述,其他具有类似配置的作业也可以工作。
【问题讨论】:
-
如果您的节点是 Docker 容器,并且正如您所说,同一节点上的其他作业运行良好,那么有时可能会延迟几秒钟或更长时间,直到 Jenkins 生成一个新容器并获取它准备好,显示这些通用消息。如果等待时间异常长,请检查是否由于构建中止等原因导致 Docker 主机中滞留的杂散容器过多,从而使为允许的并发容器数量设置的上限达到最大值。可能还有其他可能的原因,但由于其他构建工作正常,我们可以将它们推迟一段时间。