在我们的代码库中,我们有多个神经网络(分类,对象检测等),我们为这些神经网络编写了一些单元测试,希望在某个特定点(特定点无关紧要,例如,只要我们将某些功能分支合并到master分支中)。
问题在于,由于外部约束,每个神经网络都需要另一个版本的keras / tensorflow和其他一些程序包,因此我们不能在相同的Jenkins环境中全部运行它们。显而易见的解决方案是Docker容器(每个容器都有专用的Docker映像),理想情况下,我们希望告诉Jenkins在我们预先指定的Docker容器中执行每个单元测试。
有人知道如何与詹金斯一起做吗?我在网上搜索过,但发现的解决方案对我来说似乎有点拙劣。
答案 0 :(得分:2)
看起来像是詹金斯管道的候选人,especially docker agents
pipeline {
agent none
stages {
stage('Back-end') {
agent {
docker { image 'maven:3-alpine' }
}
steps {
sh 'mvn --version'
}
}
stage('Front-end') {
agent {
docker { image 'node:7-alpine' }
}
steps {
sh 'node --version'
}
}
}
}
这允许实际的Jenkins代理启动docker容器来完成工作。您说您已经有图像,所以您已完成大部分工作。