jib - 使用 JIB 构建 Spring Boot fat JAR

标签 jib maven-jib

我有一个多模块项目,我使用 Jib 构建 Spring Boot 应用程序。我知道将 fat JAR 放入容器会阻止有效地构建镜像 ( see ),但需要将一个特定模块打包到 fat JAR 文件中。由于我想为整个多模块项目保留相同的构建工具,是否可以使用 Jib 打包 fat jar?

我已经尝试过重新打包目标

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.3.5.RELEASE</version>
    <executions>
        <execution>
            <goals>
                <goal>repackage</goal>
            </goals>
        </execution>
    </executions>
</plugin>

正在打包应用程序,例如

app
├── classpath
│   └── import-metadata-service-0.0.1-SNAPSHOT.original.jar
└── libs
    ├── HdrHistogram-2.1.12.jar
    ├── LatencyUtils-2.0.3.jar
    ├── apache-jena-libs-3.13.0.pom 
    ...

最佳答案

是的,可以使用 Jib 将 fat jar 放到容器镜像上。请使用 Jib 的“containerizingMode”配置选项:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
   </executions>
    <configuration>
        <containerizingMode>packaged<containerizingMode>                
    </configuration>
</plugin>

请引用https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#extended-usage获取全套臂架配置选项。

关于jib - 使用 JIB 构建 Spring Boot fat JAR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64849472/

相关文章:

java - 即使在 gradle 构建中排除后,Spring Boot DevTools 仍在 docker 容器内使用

java - gcr.io/distroless/java :11 use base version from 11:. 0.6 到 11.0.8

jib - Google jib - 更改所有文件和文件夹的所有者

java - Jib maven 插件如何在不使用 docker 守护进程的情况下构建镜像?

java - Google JIB 创建的 Docker Image 不包含 spring rest 文档的 asciidoc

spring-boot - 使用Jib for Spring Boot优化Docker存储库中的镜像存储

java - 记录需要 ASM8

gradle - 使用jib-gradle-plugin构建多项目Dropwizard应用

jib - Google Jib - 是否可以使用 CMD/ENTRYPOINT 在容器启动时运行 linux 命令?