Skip to content

Faster Spring Boot layertools extraction in Rust

License

Notifications You must be signed in to change notification settings

aramperes/spring-boot-layertools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.