无法为Kotlin+GRPC项目构建停靠容器

6g8kf2rb  于 2022-10-04  发布在  Kotlin
关注(0)|答案(1)|浏览(144)

每次我尝试构建应用程序停靠器时,都会收到以下错误:
异常:无法运行程序“/home/gradle/.gradle/caches/modules-2/files-2.1/com.google.protobuf/protoc/3.20.3/898c37cfe230a987c908cff24f04a58d320578f1/protoc-3.20.3-linux-x86_64.exe”:错误=2,没有这样的文件或目录

在构建之前,我尝试通过以下命令将协议下载并解压缩到我的dockerfile中:

RUN curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v3.20.3/protoc-3.20.3-linux-x86_64.zip
RUN unzip -q protoc-3.20.3-linux-x86_64.zip

错误仍然存在。

我的“build.gradle”文件中的Protobuf部分如下所示:

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.20.3"
    }
    plugins {
        id("grpc") {
            artifact = "io.grpc:protoc-gen-grpc-java:1.46.0"
        }
        id("grpckt") {
            artifact = "io.grpc:protoc-gen-grpc-kotlin:0.2.0:jdk7@jar"
        }
    }
    generateProtoTasks {
        ofSourceSet("main").forEach {
            it.plugins {
                // Apply the "grpc" plugin whose spec is defined above, without options.
                id("grpc")
                id("grpckt")
            }
        }
    }
}
vmdwslir

vmdwslir1#

正如我可以在this github issue中找到的那样,我可以通过在构建步骤之前将gcompact包添加到Dockerfile中来解决它。

现在我的Docker文件如下:

FROM gradle:7.5.1-jdk18-alpine AS build
USER root

WORKDIR /data
COPY . /data

RUN apk add gcompat
RUN gradle assemble --no-daemon
.
.
.

相关问题