Learning Spring Boot 3.0 3rd Edition Bonus Content
Chapter 7 – Building Containers
The following excerpt from building a Docker container image using Paketo build packs shows ALL the steps it takes!
[INFO] Scanning for projects... [INFO] [INFO] -----------< com.springbootlearning.learningspringboot3:ch7 >----------- [INFO] Building Chapter 7 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] >>> spring-boot-maven-plugin:3.0.0:build-image (default-cli) > package @ ch7 >>> [INFO] [INFO] --- maven-resources-plugin:3.3.0:resources (default-resources) @ ch7 --- [INFO] Copying 2 resources [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.10.1:compile (default-compile) @ ch7 --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-resources-plugin:3.3.0:testResources (default-testResources) @ ch7 --- [INFO] skip non existing resourceDirectory /Users/gturnquist/src/learning-spring-boot-3rd-edition-code/ch7/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.10.1:testCompile (default-testCompile) @ ch7 --- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ ch7 --- [INFO] [INFO] --- maven-jar-plugin:3.3.0:jar (default-jar) @ ch7 --- [INFO] Building jar: /Users/gturnquist/src/learning-spring-boot-3rd-edition-code/ch7/target/ch7-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:3.0.0:repackage (repackage) @ ch7 --- [INFO] Replacing main artifact with repackaged archive [INFO] [INFO] <<< spring-boot-maven-plugin:3.0.0:build-image (default-cli) < package @ ch7 <<< [INFO] [INFO] [INFO] --- spring-boot-maven-plugin:3.0.0:build-image (default-cli) @ ch7 --- [INFO] Building image 'docker.io/library/ch7:0.0.1-SNAPSHOT' [INFO] [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 0% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 5% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 11% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 19% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 31% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 40% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 50% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 62% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 72% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 77% [INFO] > Pulling builder image 'docker.io/paketobuildpacks/builder:base' 100% [INFO] > Pulled builder image 'paketobuildpacks/builder@sha256:dbc641980f88a7f1f8936302d099bbc45e50d35770b00a9379c5e66e34e7d18a' [INFO] > Pulling run image 'docker.io/paketobuildpacks/run:base-cnb' 43% [INFO] > Pulling run image 'docker.io/paketobuildpacks/run:base-cnb' 100% [INFO] > Pulled run image 'paketobuildpacks/run@sha256:d7f1f967dfd7c8150e30fc039a5edbd7e5650b75410774a2153d6f3b47c2de76' [INFO] > Executing lifecycle version v0.15.1 [INFO] > Using build cache volume 'pack-cache-564d5464b59a.build' [INFO] [INFO] > Running creator [INFO] [creator] ===> ANALYZING [INFO] [creator] Restoring data for SBOM from previous image [INFO] [creator] ===> DETECTING [INFO] [creator] ======== Output: paketo-buildpacks/[email protected] ======== [INFO] [creator] open /workspace/package.json: no such file or directory [INFO] [creator] err: paketo-buildpacks/[email protected] (1) [INFO] [creator] ======== Output: paketo-buildpacks/[email protected] ======== [INFO] [creator] open /workspace/package.json: no such file or directory [INFO] [creator] err: paketo-buildpacks/[email protected] (1) [INFO] [creator] ======== Output: paketo-buildpacks/[email protected] ======== [INFO] [creator] open /workspace/package.json: no such file or directory [INFO] [creator] err: paketo-buildpacks/[email protected] (1) [INFO] [creator] ======== Output: paketo-buildpacks/[email protected] ======== [INFO] [creator] open /workspace/package.json: no such file or directory [INFO] [creator] err: paketo-buildpacks/[email protected] (1) [INFO] [creator] 6 of 24 buildpacks participating [INFO] [creator] paketo-buildpacks/ca-certificates 3.5.0 [INFO] [creator] paketo-buildpacks/bellsoft-liberica 9.10.0 [INFO] [creator] paketo-buildpacks/syft 1.23.0 [INFO] [creator] paketo-buildpacks/executable-jar 6.5.0 [INFO] [creator] paketo-buildpacks/dist-zip 5.4.0 [INFO] [creator] paketo-buildpacks/spring-boot 5.20.0 [INFO] [creator] ===> RESTORING [INFO] [creator] Restoring metadata for "paketo-buildpacks/ca-certificates:helper" from app image [INFO] [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:helper" from app image [INFO] [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:java-security-properties" from app image [INFO] [creator] Restoring metadata for "paketo-buildpacks/bellsoft-liberica:jre" from app image [INFO] [creator] Restoring metadata for "paketo-buildpacks/syft:syft" from cache [INFO] [creator] Restoring metadata for "paketo-buildpacks/spring-boot:spring-cloud-bindings" from app image [INFO] [creator] Restoring metadata for "paketo-buildpacks/spring-boot:web-application-type" from app image [INFO] [creator] Restoring metadata for "paketo-buildpacks/spring-boot:helper" from app image [INFO] [creator] Restoring data for "paketo-buildpacks/syft:syft" from cache [INFO] [creator] Restoring data for SBOM from cache [INFO] [creator] ===> BUILDING [INFO] [creator] [INFO] [creator] Paketo Buildpack for CA Certificates 3.5.0 [INFO] [creator] https://github.com/paketo-buildpacks/ca-certificates [INFO] [creator] Launch Helper: Contributing to layer [INFO] [creator] Creating /layers/paketo-buildpacks_ca-certificates/helper/exec.d/ca-certificates-helper [INFO] [creator] [INFO] [creator] Paketo Buildpack for BellSoft Liberica 9.10.0 [INFO] [creator] https://github.com/paketo-buildpacks/bellsoft-liberica [INFO] [creator] Build Configuration: [INFO] [creator] $BP_JVM_JLINK_ARGS --no-man-pages --no-header-files --strip-debug --compress=1 configure custom link arguments (--output must be omitted) [INFO] [creator] $BP_JVM_JLINK_ENABLED false enables running jlink tool to generate custom JRE [INFO] [creator] $BP_JVM_TYPE JRE the JVM type - JDK or JRE [INFO] [creator] $BP_JVM_VERSION 11 the Java version [INFO] [creator] Launch Configuration: [INFO] [creator] $BPL_DEBUG_ENABLED false enables Java remote debugging support [INFO] [creator] $BPL_DEBUG_PORT 8000 configure the remote debugging port [INFO] [creator] $BPL_DEBUG_SUSPEND false configure whether to suspend execution until a debugger has attached [INFO] [creator] $BPL_HEAP_DUMP_PATH write heap dumps on error to this path [INFO] [creator] $BPL_JAVA_NMT_ENABLED true enables Java Native Memory Tracking (NMT) [INFO] [creator] $BPL_JAVA_NMT_LEVEL summary configure level of NMT, summary or detail [INFO] [creator] $BPL_JFR_ARGS configure custom Java Flight Recording (JFR) arguments [INFO] [creator] $BPL_JFR_ENABLED false enables Java Flight Recording (JFR) [INFO] [creator] $BPL_JMX_ENABLED false enables Java Management Extensions (JMX) [INFO] [creator] $BPL_JMX_PORT 5000 configure the JMX port [INFO] [creator] $BPL_JVM_HEAD_ROOM 0 the headroom in memory calculation [INFO] [creator] $BPL_JVM_LOADED_CLASS_COUNT 35% of classes the number of loaded classes in memory calculation [INFO] [creator] $BPL_JVM_THREAD_COUNT 250 the number of threads in memory calculation [INFO] [creator] $JAVA_TOOL_OPTIONS the JVM launch flags [INFO] [creator] Using Java version 17 extracted from MANIFEST.MF [INFO] [creator] BellSoft Liberica JRE 17.0.5: Contributing to layer [INFO] [creator] Downloading from https://github.com/bell-sw/Liberica/releases/download/17.0.5+8/bellsoft-jre17.0.5+8-linux-amd64.tar.gz [INFO] [creator] Verifying checksum [INFO] [creator] Expanding to /layers/paketo-buildpacks_bellsoft-liberica/jre [INFO] [creator] Adding 127 container CA certificates to JVM truststore [INFO] [creator] Writing env.launch/BPI_APPLICATION_PATH.default [INFO] [creator] Writing env.launch/BPI_JVM_CACERTS.default [INFO] [creator] Writing env.launch/BPI_JVM_CLASS_COUNT.default [INFO] [creator] Writing env.launch/BPI_JVM_SECURITY_PROVIDERS.default [INFO] [creator] Writing env.launch/JAVA_HOME.default [INFO] [creator] Writing env.launch/JAVA_TOOL_OPTIONS.append [INFO] [creator] Writing env.launch/JAVA_TOOL_OPTIONS.delim [INFO] [creator] Writing env.launch/MALLOC_ARENA_MAX.default [INFO] [creator] Launch Helper: Contributing to layer [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/active-processor-count [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/java-opts [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/jvm-heap [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/link-local-dns [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/memory-calculator [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/security-providers-configurer [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/jmx [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/jfr [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/security-providers-classpath-9 [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/debug-9 [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/nmt [INFO] [creator] Creating /layers/paketo-buildpacks_bellsoft-liberica/helper/exec.d/openssl-certificate-loader [INFO] [creator] Java Security Properties: Contributing to layer [INFO] [creator] Writing env.launch/JAVA_SECURITY_PROPERTIES.default [INFO] [creator] Writing env.launch/JAVA_TOOL_OPTIONS.append [INFO] [creator] Writing env.launch/JAVA_TOOL_OPTIONS.delim [INFO] [creator] [INFO] [creator] Paketo Buildpack for Syft 1.23.0 [INFO] [creator] https://github.com/paketo-buildpacks/syft [INFO] [creator] Downloading from https://github.com/anchore/syft/releases/download/v0.62.1/syft_0.62.1_linux_amd64.tar.gz [INFO] [creator] Verifying checksum [INFO] [creator] Writing env.build/SYFT_CHECK_FOR_APP_UPDATE.default [INFO] [creator] [INFO] [creator] Paketo Buildpack for Executable JAR 6.5.0 [INFO] [creator] https://github.com/paketo-buildpacks/executable-jar [INFO] [creator] Class Path: Contributing to layer [INFO] [creator] Writing env/CLASSPATH.delim [INFO] [creator] Writing env/CLASSPATH.prepend [INFO] [creator] Process types: [INFO] [creator] executable-jar: java org.springframework.boot.loader.JarLauncher (direct) [INFO] [creator] task: java org.springframework.boot.loader.JarLauncher (direct) [INFO] [creator] web: java org.springframework.boot.loader.JarLauncher (direct) [INFO] [creator] [INFO] [creator] Paketo Buildpack for Spring Boot 5.20.0 [INFO] [creator] https://github.com/paketo-buildpacks/spring-boot [INFO] [creator] Build Configuration: [INFO] [creator] $BP_SPRING_CLOUD_BINDINGS_DISABLED false whether to contribute Spring Boot cloud bindings support [INFO] [creator] Launch Configuration: [INFO] [creator] $BPL_SPRING_CLOUD_BINDINGS_DISABLED false whether to auto-configure Spring Boot environment properties from bindings [INFO] [creator] $BPL_SPRING_CLOUD_BINDINGS_ENABLED true Deprecated - whether to auto-configure Spring Boot environment properties from bindings [INFO] [creator] Creating slices from layers index [INFO] [creator] dependencies (43.2 MB) [INFO] [creator] spring-boot-loader (269.4 KB) [INFO] [creator] snapshot-dependencies (0.0 B) [INFO] [creator] application (72.4 KB) [INFO] [creator] Launch Helper: Contributing to layer [INFO] [creator] Creating /layers/paketo-buildpacks_spring-boot/helper/exec.d/spring-cloud-bindings [INFO] [creator] Spring Cloud Bindings 1.10.0: Reusing cached layer [INFO] [creator] Web Application Type: Contributing to layer [INFO] [creator] Non-web application detected [INFO] [creator] Writing env.launch/BPL_JVM_THREAD_COUNT.default [INFO] [creator] 4 application slices [INFO] [creator] Image labels: [INFO] [creator] org.opencontainers.image.title [INFO] [creator] org.opencontainers.image.version [INFO] [creator] org.springframework.boot.version [INFO] [creator] ===> EXPORTING [INFO] [creator] Adding layer 'paketo-buildpacks/ca-certificates:helper' [INFO] [creator] Adding layer 'paketo-buildpacks/bellsoft-liberica:helper' [INFO] [creator] Reusing layer 'paketo-buildpacks/bellsoft-liberica:java-security-properties' [INFO] [creator] Adding layer 'paketo-buildpacks/bellsoft-liberica:jre' [INFO] [creator] Reusing layer 'paketo-buildpacks/executable-jar:classpath' [INFO] [creator] Adding layer 'paketo-buildpacks/spring-boot:helper' [INFO] [creator] Reusing layer 'paketo-buildpacks/spring-boot:spring-cloud-bindings' [INFO] [creator] Reusing layer 'paketo-buildpacks/spring-boot:web-application-type' [INFO] [creator] Adding layer 'launch.sbom' [INFO] [creator] Reusing 2/5 app layer(s) [INFO] [creator] Adding 3/5 app layer(s) [INFO] [creator] Adding layer 'launcher' [INFO] [creator] Adding layer 'config' [INFO] [creator] Reusing layer 'process-types' [INFO] [creator] Adding label 'io.buildpacks.lifecycle.metadata' [INFO] [creator] Adding label 'io.buildpacks.build.metadata' [INFO] [creator] Adding label 'io.buildpacks.project.metadata' [INFO] [creator] Adding label 'org.opencontainers.image.title' [INFO] [creator] Adding label 'org.opencontainers.image.version' [INFO] [creator] Adding label 'org.springframework.boot.version' [INFO] [creator] Setting default process type 'web' [INFO] [creator] Saving docker.io/library/ch7:0.0.1-SNAPSHOT... [INFO] [creator] *** Images (0a745bbe6be8): [INFO] [creator] docker.io/library/ch7:0.0.1-SNAPSHOT [INFO] [creator] Adding cache layer 'paketo-buildpacks/syft:syft' [INFO] [creator] Adding cache layer 'cache.sbom' [INFO] [INFO] Successfully built image 'docker.io/library/ch7:0.0.1-SNAPSHOT' [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:05 min [INFO] Finished at: 2022-11-25T14:39:18-06:00 [INFO] ------------------------------------------------------------------------
Don't forget to check out my YouTube channel!
If you want to discover even MORE ways to learn Spring Boot, check out my YouTube channel!