首页 > 解决方案 > Jenkins Pipeline 和 Docker - 如何从容器归档文件

问题描述

根据Jenkins Pipeline Docs,我应该能够在使用 Docker 时使用管道步骤。但是,“ archiveArtifacts ”似乎不起作用:

    def container = docker.image("some_image")
    container.inside {
        sh 'date > /tmp/test.txt'
        sh 'cat /tmp/test.txt' //works, shows file

        def fileContents = readFile '/tmp/test.txt' //works
        echo "Contents: ${fileContents}" //works, shows file

        archiveArtifacts '/tmp/*.txt' //FAILS
    }

错误:未找到与文件模式“/tmp/*.txt”匹配的工件。配置错误?”。

我尝试过的事情:

关于归档 Docker 容器中生成的文件有什么建议吗?

PS:我打开了一个错误报告......看起来archiveArtifacts只能处理docker容器中$WORKSPACE中的文件。

标签: dockerjenkinsjenkins-pipelinedocker-container

解决方案


您似乎已经找到了同一张 Jira 票证中报告的解决方案,所以我将在这里为大家发布:

这工作正常:

def image = docker.image("alpine")
 image.inside { 
   sh 'date > /tmp/test.txt'
   sh "cp /tmp/test.txt ${WORKSPACE}"
   archiveArtifacts 'test.txt'
 }

推荐阅读