Major Changes
- For Google Artifact Registry (
*-docker.pkg.dev
), Jib now tries Google Application Default Credentials last like it has been doing forgcr.io
. (#3241) - Jib now creates an additional layer that contains two small text files:
/app/jib-classpath-file
and/app/jib-main-class-file
. They hold, respectively, the final Java runtime classpath and the main class computed by Jib that are suitable for app execution on JVM. For example, with Java 9+, setting the container entrypoint tojava --class-path @/app/jib-classpath-file @/app/jib-main-class-file
will work to start the app. (This is basically the default entrypoint set by Jib when the entrypoint is not explicitly configured by the user.) The files are always generated whether Java 8 or 9+, or whetherjib.container.entrypoint
is explicitly configured. The files can be helpful especially when setting a custom entrypoint for a shell script that needs to get the classpath and the main class computed by Jib, or for AppCDS. (#3280) - For Java 9+ apps, the default Java runtime classpath explicitly lists all the app dependencies, preserving the dependency loading order declared by Maven. This is done by changing the default entrypoint to use the new classpath JVM argument file (basically
java -cp @/app/jib-classpath-file
). As such,<container><expandClasspathDependencies>
takes no effect for Java 9+. (#3280) - Timestamps of file entries in a tarball built with
jib:buildTar
are set to the epoch, making the tarball reproducible. (#3158)
See CHANGELOG.md for more details.