我有一个Spring Boot Application,并使用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>



我看到以下内容。

[INFO]建立依赖关系层...
[INFO]建立类(class)层...
[INFO]建立资源层...

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

最佳答案

确实是的。 JIB不需要Dockerfiledockerd

在下面共享一个示例,您只需将其复制到pluginspom.xml部分

<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插件对多模块Spring Boot应用程序进行Docker化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51373718/

10-10 16:32