我们没有在Jenkins声明性管道中定义docker步骤,而没有单独的dockerfile
(我们有很多项目,这使我们更容易管理)。
但是,下面的Build
阶段耗时超过5分钟,我无法理解如何缓存下载的python依赖项:
pipeline {
agent { label 'linux&&docker' }
stages {
stage("Checkout") {
steps {
cleanWs()
checkout scm
script { agentName = "$env.NODE_NAME" }
}
}
stage('Build') {
agent {
docker {
image 'python:3.7.2-stretch'
label agentName
args "-u root"
}
}
steps {
withEnv(["HOME=${env.WORKSPACE}"]) {
sh """
pip install --upgrade pip
pip install poetry==1.0.5
python -m venv env
. env/bin/activate
poetry install
"""
}
}
}
stage("Cleanup workspace"){
agent { label agentName }
steps { cleanWs() }
}
}
}
Jenkins网站Caching Data For Containers上只有一个非常高级的示例,但是我不清楚如何申请。
有什么想法或建议吗?