繁体   English   中英

了解Jenkinsfile针对Docker代理的步骤

[英]Understanding Jenkinsfile's steps for Docker agent

我有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'
      }
    }

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

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

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

因为通常是要访问工作空间的内容,因此Jenkins会将其作为卷自动安装到容器中。 否则,在大约所有作业的99%中,必须指定将检出的仓库安装到容器中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM