#extract #jar #boot #layer #layered #spring #layertools

app spring-boot-layertools

Faster Spring Boot layertools extraction in Rust

5 releases (1 stable)

1.0.0 Sep 27, 2022
0.2.1 Aug 1, 2022
0.2.0 Aug 1, 2022
0.1.3 Aug 1, 2022
0.1.0 Jul 31, 2022

#665 in Unix APIs

MIT license

18KB
339 lines

spring-boot-layertools

Extract Spring Boot layered JARs up to ✨10x faster✨ than the built-in Java CLI.

docker hub crates.io

Usage

This tool is intended to be used as a Docker multi-stage builder image. For example:

FROM aramperes/spring-boot-layertools:latest as layertools
# Copy your 'fat layered jar'
COPY ./target/*.jar layered.jar
# Extract layers
RUN spring-boot-layertools layered.jar extract

# Copy layers to your final image
FROM eclipse-temurin:17-jre-alpine
COPY --from=layertools /home/layertools/spring-boot-loader /
RUN true
COPY --from=layertools /home/layertools/dependencies /
RUN true
COPY --from=layertools /home/layertools/snapshot-dependencies /
RUN true
COPY --from=layertools /home/layertools/application /
RUN true

ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]

Command-line Options

USAGE:
    spring-boot-layertools <jar> <SUBCOMMAND>

ARGS:
    <jar>    The layered Spring Boot jar to extract

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    classpath    List classpath dependencies from the jar
    extract      Extracts layers from the jar for image creation
    help         Print this message or the help of the given subcommand(s)
    list         List layers from the jar that can be extracted

License

MIT License. See LICENSE for details. Copyright © 2022 Aram Peres.

"Spring" and "Spring Boot" are trademarks of Pivotal Software, Inc.

Dependencies

~7MB
~121K SLoC