【问题标题】:Docker build image COPY failed: stat no such file or directoryDocker build image COPY failed: stat no such file or directory
【发布时间】:2021-11-16 20:11:35
【问题描述】:

我们想构建一个基于 micronaut 框架 (java) 与 jenkins 和 docker 的后端。

本地一切正常。但不是通过 jenkins/docker。

错误信息

在构建镜像的过程中出现以下错误:

Step 7/11 : COPY --from=build ./build/layers/libs /home/app/libs
COPY failed: stat /var/lib/docker/overlay2/33b475c0bb868e9d61905995e0bd720a30cfde48e7e28acbb31a8a0d88474e24/merged/build/layers/libs: no such file or directory

Dockerfile

FROM gradle:7.2.0-jdk16 as build
WORKDIR /app
COPY --chown=gradle:gradle . /app
RUN gradle build --no-daemon

FROM openjdk:16-alpine
WORKDIR /home/app
COPY --from=build /app/build/layers/libs /home/app/libs
COPY --from=build /app/build/layers/resources /home/app/resources
COPY --from=build /app/build/layers/application.jar /home/app/application.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/home/app/application.jar"]

Jenkinsfile sn-p

stage('Backend: Build Docker image') {
    steps {
        script {
            if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'pipeline') {
                docker.withServer("${dockerServer}") {
                    docker.withRegistry("https://${dockerRegistry}", 'ci-bot-docker') {
                        dir ("backend") {
                            def image = docker.build("${dockerRegistry}/product/${env.BRANCH_NAME}/backend:latest", "-f Dockerfile .")
                            image.push()
                        }
                    }
                }
            }
        }
    }
}

我尝试将使用 gradle 的构建从 Dockerfile 移动到 Jenkinsfile 作为单独的步骤。发生同样的错误。我四处搜索并找到了也无济于事的解决方案。

你能帮我解决这个问题吗:)

bg

塞巴斯蒂安

【问题讨论】:

  • 通过在 Dockerfile 中的 gradle build 命令后添加 RUN ls -R /app/build 来验证构建中的文件是否在您期望的位置。
  • 这不是同一个 Dockerfile: error show COPY --from=build ./build/layers/libs /home/app/libs which use a relative path your docker file shows /app//build/layers/libs

标签: java docker jenkins gradle micronaut


【解决方案1】:

原因是路径错误。

正确的路径是:

COPY --from=builder /app/build/docker/layers/libs /home/app/libs
COPY --from=builder /app/build/docker/layers/resources /home/app/resources
COPY --from=builder /app/build/docker/layers/application.jar /home/app/application.jar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-19
    • 2020-03-14
    • 2022-07-11
    • 2014-09-04
    • 2012-06-03
    • 2019-10-25
    • 2020-07-15
    • 2023-04-03
    相关资源
    最近更新 更多