[英]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.