簡體   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