gpt4 book ai didi

maven - 使用 JIB 插件 Docker 化多模块 Spring Boot 应用程序

转载 作者:行者123 更新时间:2023-12-02 09:11:37 29 4
gpt4 key购买 nike

我有一个 Spring boot 应用程序,并使用 spotify 插件来 Dockerize 我的应用程序。因此,我将拥有一个如下所示的 Dockerfile。

FROM jdk1.8:latest  

RUN mkdir -p /opt/servie

COPY target/service.war /opt/service

ENV JAVA_OPTS="" \
JAVA_ARGS=""

CMD java ${JAVA_OPTS} -jar /opt/service/service.war ${JAVA_ARGS}

我发现了 JIB,它看起来真的很酷。但是,努力让它发挥作用。

我添加了下面的 pom 条目。

<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.6</version>
<configuration>
<from>
<image>jdk1.8:latest</image>
</from>
<to>
<image>docker.hub.com/test/service</image>
</to>
</configuration>
</plugin>

mvn compile jib:build

我看到以下内容。

[INFO]构建依赖层...[INFO] 构建类层...[INFO]构建资源层...

当我运行 docker 镜像时,它说,Jar 文件不存在。我有一个多模块 Maven 项目,想在运行 mvncompile jib:build 时从父 pom 中对多个模块进行 dockerize。有什么帮助吗?

最佳答案

确实是的。 JIB不需要 Dockerfile 或 dockerd。

下面分享一个示例,您只需将其复制到 pom.xmlplugins 部分

<plugin>  
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.7</version>
<configuration>
<allowInsecureRegistries>true</allowInsecureRegistries>
<from>
<image>gcr.io/distroless/java</image>
</from>
<to>
<!-- make sure you already have created a project at Google Cloud Platform, see https://cloud.google.com/container-registry/ -->
<image>gcr.io/my-gcp-project/${project.artifactId}:${project.version}</image>
<credHelper>gcr</credHelper>
</to>
<container>
<jvmFlags>
<jvmFlag>-Xms256m</jvmFlag>
<jvmFlag>-Xmx512m</jvmFlag>
<jvmFlag>-Xdebug</jvmFlag>
<jvmFlag>-XX:+UnlockExperimentalVMOptions</jvmFlag>
<jvmFlag>-XX:+UseCGroupMemoryLimitForHeap</jvmFlag>
</jvmFlags>
<mainClass>learnmake.microservices.RunApplication</mainClass>
<ports>
<port>8080</port>
<!-- <port>4000-4004/udp</port> -->
</ports>
<format>OCI</format>
<!-- OR <format>Docker</format> -->
<useCurrentTimestamp>true</useCurrentTimestamp>
</container>
</configuration>
</plugin>

更详细的示例,请参见learnmake-microservices

关于maven - 使用 JIB 插件 Docker 化多模块 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51373718/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com