因此docker管道步骤的工作原理如下
docker.image('maven:3.3.3-jdk-8').inside {
sh "git clone .."
sh 'mvn -B clean install'
}
其中每个闭包语句在docker exec
包裹的运行容器上执行
我希望使用相同的技术,但是在docker-compose
运行的容器上。
我想创建一个步骤(除非那里已经有一个步骤了)。
假设在早期,我有一组使用docker-compose
运行的服务。我知道要在其中运行一些詹金斯步骤的容器的容器ID。步骤将如下所示:
withContainer(<id_of_the_container>) {
sh "date"
sh "cat mydog"
}
闭包中的每个语句都将在容器上执行,就像我正在有效地执行以下操作一样:
docker exec <id_of_the_container> sh "date"
docker exec <id_of_the_container> sh "cat mydog"
我可以开始定义类似的步骤
def withContainer(containerId,Closure cl) {
// I know I need to do something like
// docker exec $containerId ...
}
如何访问闭包中的语句?还是我以错误的方式进行操作?