加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

将文件从docker镜像复制到jenkins工作区

发布时间:2020-12-16 03:27:10 所属栏目:安全 来源:网络整理
导读:我有一个使用dockerfile的jenkins文件 我对如何将文件从docker镜像复制到jenkins工作区感兴趣.具体来说 我正在生成一个关于我希望由jenkins工作发布的docker镜像的HTML报告. 例如,如果我在docker镜像的/ app /目录中生成一个名为test.html的文件 如何将其复

我有一个使用dockerfile的jenkins文件 – 我对如何将文件从docker镜像复制到jenkins工作区感兴趣.具体来说 – 我正在生成一个关于我希望由jenkins工作发布的docker镜像的HTML报告.

例如,如果我在docker镜像的/ app /目录中生成一个名为test.html的文件 – 如何将其复制到jenkins工作区以便我可以发布它.

示例Jenkinsfile如下:

node ('ondemand') {
    try {
        stage "build"
        checkout scm
        def customImage = docker.build("docker-image:${env.BUILD_ID}","-f ./docker-image/Dockerfile .")

        stage "test copying files"
        customImage.inside('-u root') {
            sh 'touch /app/test.html && ls' // can see that test.html is generated

        }
    }
最佳答案
由于docker插件中不支持docker cp,因此有两种方法可以实现.

解决方案1:启动实例时的卷映射-v

customImage.inside('-v $WORKSPACE:/output -u root') {
    sh 'touch /app/test.html && ls' // can see that test.html is generated
}
archiveArtifacts artifacts: '*.html'

见完整Jenkinsfile

解决方案2:在shell中使用传统的docker命令(未验证)

sh """
docker run --name sample -d -u root docker-image:${env.BUILD_ID} 'touch /app/test.html'
docker cp sample:/app/test.html .
docker rm -f sample
"""

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读