jenkinsfile-如何使用脚本化管道启动docker节点

zan*_*man 5 jenkins docker jenkins-pipeline

脚本化管道(例如,node {}块为顶级)使用Docker容器(例如,来自dockerhub映像或dockerfile)的语法是什么?

我知道如何使用声明性管道来执行此操作,只需指定一个代理块并将docker放入其中即可。我想知道如何使用脚本化管道语法。

Chr*_*aes 1

你可以这样做:

node('docker-host') {
    checkout scm
    docker.withRegistry('registry-url', 'credentials-id') {
        def dockerfile = "path/to/Dockerfile"
        def buildImage = docker.build("my-image-${env.GIT_COMMIT}", "-f $dockerfile .")
        buildImage.inside('-v /tmp:/tmp') {
            echo "inside docker"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)