我想使用多级docker构建部署我的quarkus项目。在第一步中,我解析容器a(build\u container)中的依赖项,然后将它们复制到容器b(run\u container)。然后我使用离线开关逐步构建我的应用程序。
dockerfile.svc文件:
FROM java-gradle-build-img:12.0.1.b4 as BUILD_IMAGE
FROM docker-java-img:12.0.2.b3
COPY --from=BUILD_IMAGE /opt/build/quarkus-service/build/lib/* /service/dependencies/
COPY --from=BUILD_IMAGE /opt/build/quarkus-service/build/*-runner.jar /service/service-runner.jar
EXPOSE 8080
CMD ["java","-jar","/service/quarkus-service-runner.jar"]
我正在努力解决的问题如下。当我在build.gradle中仅指定运行时依赖项时,quarkusgeneratecode任务由于缺少部署依赖项而失败。
异常消息:
> Could not resolve io.quarkus:quarkus-resteasy-jsonb-deployment:1.9.2.Final.
Required by:
project :quarkus-service
> No cached version of io.quarkus:quarkus-resteasy-jsonb-deployment:1.9.2.Final available for offline mode.
> Could not resolve io.quarkus:quarkus-rest-client-deployment:1.9.2.Final.
Required by:
project :-quarkus-service
> No cached version of io.quarkus:quarkus-rest-client-deployment:1.9.2.Final available for offline mode.
> Could not resolve io.quarkus:quarkus-resteasy-deployment:1.9.2.Final.
Required by:
project quarkus-service
我找到的解决方案是显式地将部署库指定为以下实现:
implementation "io.quarkus:quarkus-resteasy"
implementation "io.quarkus:quarkus-resteasy-jsonb"
implementation "io.quarkus:quarkus-elytron-security-oauth2"
implementation "io.quarkus:quarkus-rest-client"
implementation "io.quarkus:quarkus-agroal"
implementation "io.quarkus:quarkus-jdbc-postgresql"
implementation "io.quarkus:quarkus-flyway"
implementation "io.quarkus:quarkus-resteasy-jsonb-deployment"
implementation "io.quarkus:quarkus-rest-client-deployment"
implementation "io.quarkus:quarkus-resteasy-deployment"
implementation "io.quarkus:quarkus-flyway-deployment"
implementation "io.quarkus:quarkus-elytron-security-oauth2-deployment"
implementation "io.quarkus:quarkus-agroal-deployment"
implementation "io.quarkus:quarkus-jdbc-postgresql-deployment"
但正如官方文件中所说的那样,这并不是解决问题的办法。我的问题是,有没有一种方法能够在容器中的初始构建期间解决这些依赖关系?或者离线模式在quarkus中根本不好?
暂无答案!
目前还没有任何答案,快来回答吧!