How to mount Jenkins workspace in docker container using Jenkins pipeline

两盒软妹~` 提交于 2019-11-30 05:22:15
pipeline {
agent any
stages {
    stage('Clone') {
        steps {
            git branch: 'master', url: 'https://github.com/lvthillo/maven-hello-world.git'
            stash name:'scm', includes:'*'
        }
    }

    stage('Build in Docker') {
        steps {
            unstash 'scm'
            script{
                docker.image('maven:3.5.2').inside{ 
                    sh 'pwd'
                    sh 'mvn -v'
                    sh 'mvn clean install'
                }
            }
        }
    }
}
}

You can use this pipeline even with a multi-node setup. Docker plugin by cloudbees mounts your workspace as a docker workspace too.Hence, it is not necessary to mount any volume unless they are outside the workspace.

Thanks, the Previous solution works for me. My version for node container and ${PWD} as param

stage('Build Solution') { 
        agent {
            docker {
                image 'node:6-alpine'
                args '-v ${PWD}:/usr/src/app -w /usr/src/app'
                reuseNode true
            }
        }
        steps {
            sh 'npm install'
        }
    }

My last explanation was helping myself to solve the problem: This text helped me to solve it. I had to ensure that all the steps on my pipeline were using the same agent as the initial one where I performed my git clone:

Addit reuseNode true solved it:

stage('Build in Docker') {
            agent {
                docker {
                    image 'maven:3.5.2'
                    args '-v /var/jenkins_home/workspace/test:/opt/maven -w /opt/maven'
                    reuseNode true
                }
            }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!