首页 文章

尝试在Jenkins管道中构建docker容器时,在构建时出现“无法统计”错误,但为什么呢?

提问于
浏览
0

我正在尝试使用Dockerfile作为Jenkins 2.0管道中的一个步骤和插件Docker Pipeline插件来构建Docker容器 .

我创建了一个看起来像这样的Dockerfile:

FROM openjdk:8-jdk

ENV DEBIAN_FRONTEND noninteractive

RUN set -x \
    && apt-get update \
    && apt-get install -y \
        file \
        aapt \
        lib32z1 \
        make \
        gcc-4.9-base \
        libgcc1 \
    && rm -rf /var/lib/apt/lists/*

“openjdk:8-jdk”是来自Docker HUB的有效openjdk8映像 .

这是管道脚本的相关部分(已针对故障排除事项进行了编辑):

stage ('Compilation within Docker') {
        java = docker.build 'openjdk8:android'
        java.inside("-e GRADLE_USER_HOME=${GRADLE_USER_HOME} -e ANDROID_HOME=${GRADLE_USER_HOME}/android-sdk-linux" ) {
            withCredentials([ // Use Jenkins credentials ID of artifactory
                [$class: 'UsernamePasswordMultiBinding', credentialsId: artifactory_creds, usernameVariable: 'A_USER', passwordVariable: 'A_PASS'],
            ]){
                sh """
                echo "OK!"
                exit 0
                """

“openjdk8:android”是我为图像选择的名称,并且不以任何方式官方 .

出于某种原因,当我运行构建时,它失败并出现以下错误:

[workspace] Running shell script
+ docker build -t openjdk8:android .
Error checking context: 'can't stat '/mnt/storage/jenkins/jobs/product_android_build/workspace/company/build/generated/source/r/production/release/com''.
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE

这些构建显然是作为jenkins用户运行的,但是当我登录到Jenkins服务器并浏览到错误中提到的路径( /mnt/storage/jenkins/jobs/product_android_build/workspace/company/build/generated/source/r/production/release/com )时,我看到该文件夹的所有者是root用户 .

我已经尝试了 chown -R jenkins.jenkins folder 但是在下一次运行root之后又返回了文件夹的所有者(因为它符合路径中的"generated"文件夹名称) .

有机会怎么解决?

1 回答

  • 0

    如果有人感兴趣...从Jenkins服务器上的作业目录中删除工作区目录修复了问题 .

相关问题