了解Docker代理的Jenkinsfile步骤

时间:2019-03-27 20:48:06

标签: docker jenkins jenkins-pipeline

我的Jenkinsfile具有以下步骤:

stage('build') {
      agent {
           docker {
               image 'maven:3-alpine'
               args '-v /ec2-user/.m2:/root/.m2'
           }
      }
      steps {
        git(url: 'https://github.com/user/project.git', branch: 'master')
        sh 'cp /home/application-prod.properties src/main/resources'
        sh 'mvn clean install'
      }
    }

根据文档,詹金斯应该使用此图片在新创建的容器中执行此阶段的步骤。

如果是这样,那么为什么第二步的 sh 命令成功执行?它如何访问Jenkins主机上的文件?

在我看来,这些命令似乎在Jenkins主机上执行。那么为什么 mvn全新安装可以正常工作? Jenkins主机未安装Maven。

1 个答案:

答案 0 :(得分:2)

因为在通常情况下,您要访问工作空间的内容,所以Jenkins会将其作为卷自动安装到容器中。否则,在大约99%的所有作业中,必须指定将签出的回购文件安装到容器中。

当发布-v命令时,您应该能够在构建的输出中看到docker run参数。