使用Docker和Jenkins声明性管道缓存python依赖项

时间:2020-06-23 07:39:30

标签: python python-3.x docker jenkins-pipeline

我们没有在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上只有一个非常高级的示例,但是我不清楚如何申请。

有什么想法或建议吗?

0 个答案:

没有答案