脚本Jenkinsfile的多个Docker

时间:2018-05-18 15:22:18

标签: mysql docker jenkins solr jenkins-pipeline

我有一个问题。我的jenkins需要一个jenkins文件。要测试我们的包,我们需要一个solr和一个mysql服务器。所以重点是,我希望将此包含在系统中,并将docker放在脚本化管道中。

在文档中,有一个选项,第二个docker.image在sidecar中运行。第一个是提供执行环境。问题是,solr或mysql作为执行没有PHP或Ant。所以我想使用host-system作为执行环境,并使用两个docker作为我的test-enviornment的基线。

有没有人有想法,我怎么能得到这个?

https://jenkins.io/doc/book/pipeline/docker/#using-multiple-containers这是jenkins对此文档的链接,但我没有找到我的问题的提示。

1 个答案:

答案 0 :(得分:0)

Jenkins不支持开箱即用的多容器构建。您只能为您的工作分配一个容器或每个阶段分配一个容器。在你的情况下,你想要一次启动3个容器 - 一个使用solr,一个使用mysql,另一个使用php,在那里运行PHPUnit测试。在这一点上,这是不受支持的。

解决方法:

  1. 您可以设置kubernetes群集并使用已在Jenkins设置中配置的pod模板动态设置代理。然后通过分配一个带有你定义的模板标签的节点,你可以实现你想要的。

  2. 使用docker-compose进行游戏并从那里手动启动容器。确保有一个post { always {} }阶段,一旦构建完成就会销毁创建的容器。