在Gradle构建期间,Google Cloud Container Build触发器崩溃

问题描述 投票:0回答:1

我试图为使用gradle构建的kotlin应用程序设置构建触发器。为此,我将以下Dockerfile放在一起:

FROM gradle:jdk8 as builder

WORKDIR /home/gradle/project

COPY . .

WORKDIR ./Kuroji-Eventrouter-Server

RUN gradle shadowJar

FROM openjdk:8-jre-alpine

WORKDIR /app

COPY --from=builder /home/gradle/project/Kuroji-Eventrouter-Server/build/libs/kuroji-eventrouter-server-*-all.jar kuroji-eventrouter-server.jar

ENTRYPOINT ["java", "-jar", "kuroji-eventrouter-server.jar"]

并且该文件在我的机器上使用docker build并且它通常在google容器注册表上启动但是在RUN gradle shadowJar任务期间它崩溃了一些gradle错误:

Step 5/9 : RUN gradle shadowJar
 ---> Running in ddd190fc2323
Starting a Gradle Daemon (subsequent builds will be faster)
[91m
[0m[91mFAILURE: [0m[91mBuild failed with an exception.[0m[91m
[0m[91m
[0m[91m* What went wrong:
[0m[91mCould not create service of type ScriptPluginFactory using BuildScopeServices.createScriptPluginFactory().
[0m[91m> [0m[91mCould not create service of type CrossBuildFileHashCache using BuildSessionScopeServices.createCrossBuildFileHashCache().
[0m[91m
[0m[91m* Try:
[0m[91mRun with [0m[91m--stacktrace[0m[91m option to get the stack trace. Run with --info[0m[91m or --debug[0m[91m option to get more log output. Run with [0m[91m--scan[0m[91m to get full insights.[0m[91m
[0m[91m
[0m[91m* Get more help at https://help.gradle.org
[0m[91m
[0m[91mBUILD FAILED in 3s
The command '/bin/sh -c gradle shadowJar' returned a non-zero code: 1
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: exit status 1
[0m

我尝试在docker HUB上构建Image,同样的事情发生了:qazxsw poi

这对我来说非常混乱,因为我认为容器应该可以在任何地方运行而不依赖于环境。我该怎么做才能让google构建我的容器?

google-cloud-platform
1个回答
1
投票

问题是文件权限问题。使用--stacktrace选项,我发现gradle进程没有权限在源中创建文件夹。

我想要做的解决方案是在COPY指令上使用https://hub.docker.com/r/usbpc/kuroji-eventrouter-server/builds/bnknnpqowwabdy82ydxiypc/选项,不幸的是它尚未在谷歌云中支持。

所以解决方案是在执行gradle构建之前添加--chown=gradle:gradle

© www.soinside.com 2019 - 2024. All rights reserved.