【问题标题】:Run Jenkins Job in a container在容器中运行 Jenkins Job
【发布时间】:2016-11-05 03:26:18
【问题描述】:

我有几个 Jenkins 工作和几个 Jenkins 从节点(物理机)。这些从站都在运行 docker 1.12.1。我希望这些工作中的任何一个都可以在这些奴隶中的任何一个上运行。由于这些作业有不同的环境要求,我认为我可以为每个不同的环境创建 docker 映像,然后在作业“内部”指定作业将在哪个容器中运行。

这可能吗?即在这些作业中指定我希望这些作业在其中运行的特定 docker 容器?在作业结束时,容器将被销毁,仅保留工件和报告。

Jenkins 中有几个 docker 插件,但我还没有找到一个完全符合我要求的插件。

【问题讨论】:

    标签: docker jenkins jenkins-pipeline


    【解决方案1】:

    当然,答案是是的,这是可能的

    鉴于问题类型广泛,我只能指点一下。

    提供了一种将管道描述为代码的好方法。 docker 插件也与之集成,因此您可以在容器中运行作业,例如

    // select a slave based on the label 'docker'
    node('docker') {
      stage "Run in container (e.g. the php-7)"
      docker.image('php:7').inside {
        // run your command
        sh "phpunit"
      }
    }
    

    有一些关于 的资源可以帮助您入门。

    【讨论】:

    • 在需要多个 docker 容器的情况下如何测试?例如。使用数据库执行 phpunit。
    • 请将此作为一个单独的问题,而不是作为评论提出。
    【解决方案2】:

    我找到了我要找的插件。

    https://plugins.jenkins.io/docker-custom-build-environment/

    这会做我想要的。它将允许我在容器中运行我的作业。到目前为止,它运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 2019-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多