docker npm build 后 Jenkins 复制文件错误

Jenkins copy files error after docker npm build

我有一个类似这样的脚本:

pipeline {
    agent {
        docker {
            label 'dev' 
            image 'node:12-alpine' 
            args '-p 3000:3000' 
        }
    }
    environment {
        HOME = '.'
    }    
    stages {
        stage('clone repo') {
            steps {
                git(
                    url: '...',
                    credentialsId: '...',
                    branch: 'master'
                )
            }
        }
        stage('install dependency packages') { 
            steps {
                sh 'npm install'
            }
        }
        stage('build prod ready enviroment') { 
            steps {
                sh 'npm run build'
            }
        }
        stage('deploy') {
            agent { node { label 'dev' } }
            steps {
                sh "cp -rf ./build/* /opt/www_folder/"
            }
        }
    }
}

现在一切正常,除了部署阶段只是挂起构建过程。如果我 运行 只有最后一个阶段(部署)单独没有其他阶段它工作正常。我认为与 docker 代理有冲突,但我不知道如何解决。

我不确定这是否是最佳答案,但我设法用这个脚本解决了我的问题:

pipeline {
    agent none
    environment {
        HOME = '.'
    }    
    stages {
        stage('clone repo') {
            agent { node { label 'dev' } }
            steps {
                git(
                    url: '...',
                    credentialsId: '...',
                    branch: 'master'
                )
            }
        }
        stage('install and build') { 
            agent {
                docker {
                    label 'dev' 
                    image 'node:12-alpine' 
                    args '-p 3000:3000' 
                }
            }
            steps {
                sh 'npm install'
                sh 'npm run build'
            }
        }
        stage('deploy') {
            agent { node { label 'dev' } }
            steps {
                sh "rm -rf /opt/www_folder/*"
                sh "cp -rf ./build/* /opt/www_folder/"
            }
        }
    }
}