catchError {
    def label = "image-copy"
    podTemplate(name: label, label: label, instanceCap: 5, containers: [
        containerTemplate(name: 'dockerd', image: 'hub.pingcap.net/mirrors/docker:18.09.6-dind', privileged: true),
        containerTemplate(name: 'docker', image: 'hub.pingcap.net/mirrors/docker:18.09.6', envVars: [envVar(key: 'DOCKER_HOST', value: 'tcp://localhost:2375')], ttyEnabled: true, command: 'cat'),
    ]) {
        node(label) {
            container("docker") {
                stage("Copy") {
                    echo("${params.SOURCE} -> ${params.TARGET}")
                    docker.withRegistry("https://hub.pingcap.net", "harbor-pingcap") {
                        sh("docker pull ${params.SOURCE}")
                        sh("docker tag ${params.SOURCE} ${params.TARGET}")
                        sh("docker push ${params.TARGET}")
                    }
                }
            }
        }
    }
}
