当前位置: 首页 > 面试题库 >

Jenkins作业终止后清理孤立的Docker容器

边明煦
2023-03-14
问题内容

我在一个大型组织中工作,该组织在一个共享的Jenkins集群中运行数百个工作。

我的Jenkins工作需要针对Docker容器中运行的不受信任的代码运行集成测试。我担心当我的詹金斯(Jenkins)工作突然终止(例如,工作中止或超时)时,我将身处孤儿容器中。

我已经尝试过https://github.com/moby/moby/issues/1905,ulimits但它对bash我不起作用(这是因为它仅适用于运行容器,但我不能保证我的容器会这样做)。

我尝试了但--lxc-conf不是Docker for Windows的公认选项(这需要在docker支持的所有平台上运行)。

有任何想法吗?


问题答案:

从外观上看,人们正在docker之外进行处理。

他们正在添加Jenkins的构建后步骤,以清理中止或失败的构建上的孤立docker容器。

以Martin Kenneth的构建脚本为例。



 类似资料:
  • 我们的Spring批处理作业在处理输入文件时突然失败。当我试图重新运行批处理作业时,它会抛出以下消息。 02:27:09.088[main]调试O.S.B.C.R.dao.jdbcstepExecutionDAO-在更新StepExecution之前截断长消息,原始消息为:org.springframework.batch.core.jobExecutionException:无法从开始状态重新启

  • 我正在创建一个模型,该模型引用第三方包——芹菜(Crontab时间表和周期任务)中的模型。我的模型(让我们称之为SchduledRun)将包含一个周期任务的外键。 我知道,如果我删除外键本身,就会发生级联删除,引用该外键的父级也会被删除。(除非在删除时被覆盖…) 但由于我将ScheduledRun指向PeriodicTask的FK,所以在删除ScheduledRun时,PeriodicTask不会

  • 我正在使用牧场主 CLI 在牧场主中运行数千个工作。我想在任务完成后立即删除作业。问题是当作业完成时,作业在那里保持“活动”。 我尝试了如何自动删除由CronJob创建的已完成的Kubernetes作业?但这对我不起作用。正如我所看到的,底层docker容器进入“终止”状态,但是部署的作业仍然是活动的。 现在我必须同步等待工作完成,然后我触发“kubectl删除”命令来删除工作。但我想异步执行此操

  • 问题内容: 我正在使用Jenkins DSL插件自动为git项目的所有分支创建构建作业。DSL插件由Web挂钩触发,以便在创建新分支后立即运行。每个分支生成的生成作业也被配置为由Web挂钩触发。 当前设置的问题是,仅在第二次提交后才执行构建。第一次提交将触发Jenkins DSL插件来创建相应的Jenkins作业,然后第二次提交将触发新创建的作业。 有什么方法可以通过DSL插件创建Jenkins作

  • 问题内容: 我刚刚检查了/ var / lib / docker / volumes文件夹,发现该文件夹正以名为Docker UUID的文件夹爆炸,每个文件夹都包含一个config.json文件,其内容与 哪里 是指向主机上的文件夹的路径,该主机已通过-v开关挂载到Docker容器上。我有这样的文件夹可以追溯到我对Docker进行实验的开始,即大约3周前。 有问题的容器很久以前就已停止并且dock