diff --git a/docs/dotnet/README.md b/docs/dotnet/README.md index 52666239..8f5602dc 100644 --- a/docs/dotnet/README.md +++ b/docs/dotnet/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -136,7 +136,7 @@ $ pack build my-image-name --path . Image with name "my-image-name" not found ===> DETECTING 2 of 3 buildpacks participating -heroku/dotnet 0.12.0 +heroku/dotnet 0.14.0 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -148,9 +148,9 @@ Skipping buildpack layer analysis - Detected .NET solution: `/workspace/GettingStarted.slnx` - Inferring version requirement from `/workspace/GettingStarted.slnx` - Detected version requirement: `^10.0` - - Resolved .NET SDK version `10.0.100` (linux-amd64) + - Resolved .NET SDK version `10.0.101` (linux-amd64) - SDK installation - - Downloading SDK from https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100/dotnet-sdk-10.0.100-linux-x64.tar.gz ......... (6.1s) + - Downloading SDK from https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.101/dotnet-sdk-10.0.101-linux-x64.tar.gz ..... (2.4s) - Verifying SDK checksum - Installing SDK - Restore .NET tools @@ -161,12 +161,12 @@ Skipping buildpack layer analysis Restore was successful. - - Done (1.9s) + - Done (2.5s) - Publish app - Running `dotnet publish /workspace/GettingStarted.slnx --runtime linux-x64 "-p:PublishDir=bin/publish" --artifacts-path /tmp/build_artifacts` Determining projects to restore... - Restored /workspace/Frontend/Frontend.csproj (in 4.02 sec). + Restored /workspace/Frontend/Frontend.csproj (in 4.55 sec). Frontend -> /tmp/build_artifacts/bin/Frontend/release_linux-x64/Frontend.dll Frontend -> /workspace/Frontend/bin/publish/ Publishing executable database migration bundle @@ -176,13 +176,13 @@ Skipping buildpack layer analysis Done. Migrations Bundle: /workspace/Frontend/bin/publish/efbundle Don't forget to copy appsettings.json alongside your bundle if you need it to apply migrations. - - Done (21.5s) + - Done (24.1s) - Process types - Detecting process types from published artifacts - Found `web`: bash -c cd Frontend/bin/publish; ./Frontend --urls http://*:$PORT - Procfile detected - Skipping process type registration (add process types to your Procfile as needed) -- Done (finished in 33.1s) +- Done (finished in 32.7s) ## Procfile Buildpack @@ -201,7 +201,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (0b4fa5bd4a41): +*** Images (960f00be8d51): my-image-name Adding cache layer 'heroku/dotnet:nuget-cache' Adding cache layer 'heroku/dotnet:sdk' @@ -216,7 +216,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -0b4fa5bd4a41 my-image-name latest +960f00be8d51 my-image-name latest ``` ## What does `pack build` do? @@ -230,7 +230,7 @@ When you run `pack build` with a builder, each buildpack runs a detection script ``` ===> DETECTING 2 of 3 buildpacks participating -heroku/dotnet 0.12.0 +heroku/dotnet 0.14.0 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -256,7 +256,7 @@ $ docker run -it --rm --env PORT=5006 -p 5006:5006 my-image-name warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60] Storing keys in a directory '/home/heroku/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. For more information go to https://aka.ms/aspnet/dataprotectionwarning warn: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] - No XML encryptor configured. Key {846ec1db-d5ce-4b8f-9533-2475b4e63c16} may be persisted to storage in unencrypted form. + No XML encryptor configured. Key {f47095d0-af6f-4e1f-b2f5-d67bd3611998} may be persisted to storage in unencrypted form. info: Microsoft.Hosting.Lifetime[14] Now listening on: http://[::]:5006 info: Microsoft.Hosting.Lifetime[0] @@ -406,8 +406,8 @@ $ pack build my-image-name --path . ===> ANALYZING Image with name "my-image-name" not found ===> DETECTING -heroku/python 3.0.0 -heroku/dotnet 0.12.0 +heroku/python 3.0.1 +heroku/dotnet 0.14.0 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -434,9 +434,9 @@ Running 'pip install -r requirements.txt' - Detected .NET solution: `/workspace/GettingStarted.slnx` - Inferring version requirement from `/workspace/GettingStarted.slnx` - Detected version requirement: `^10.0` - - Resolved .NET SDK version `10.0.100` (linux-amd64) + - Resolved .NET SDK version `10.0.101` (linux-amd64) - SDK installation - - Downloading SDK from https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100/dotnet-sdk-10.0.100-linux-x64.tar.gz ........ (5.5s) + - Downloading SDK from https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.101/dotnet-sdk-10.0.101-linux-x64.tar.gz ..... (2.5s) - Verifying SDK checksum - Installing SDK - Restore .NET tools @@ -447,12 +447,12 @@ Running 'pip install -r requirements.txt' Restore was successful. - - Done (1.9s) + - Done (2.1s) - Publish app - Running `dotnet publish /workspace/GettingStarted.slnx --runtime linux-x64 "-p:PublishDir=bin/publish" --artifacts-path /tmp/build_artifacts` Determining projects to restore... - Restored /workspace/Frontend/Frontend.csproj (in 4.75 sec). + Restored /workspace/Frontend/Frontend.csproj (in 7.76 sec). Frontend -> /tmp/build_artifacts/bin/Frontend/release_linux-x64/Frontend.dll Frontend -> /workspace/Frontend/bin/publish/ Publishing executable database migration bundle @@ -462,13 +462,13 @@ Running 'pip install -r requirements.txt' Done. Migrations Bundle: /workspace/Frontend/bin/publish/efbundle Don't forget to copy appsettings.json alongside your bundle if you need it to apply migrations. - - Done (22.3s) + - Done (26.9s) - Process types - Detecting process types from published artifacts - Found `web`: bash -c cd Frontend/bin/publish; ./Frontend --urls http://*:$PORT - Procfile detected - Skipping process type registration (add process types to your Procfile as needed) -- Done (finished in 33.3s) +- Done (finished in 35.2s) ## Procfile Buildpack @@ -489,7 +489,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (2d7b88e2d68f): +*** Images (9865d18cdf2a): my-image-name Adding cache layer 'heroku/python:pip' Adding cache layer 'heroku/python:pip-cache' diff --git a/docs/go/README.md b/docs/go/README.md index 292773c8..243dbc6b 100644 --- a/docs/go/README.md +++ b/docs/go/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -178,14 +178,14 @@ Skipping buildpack layer analysis go: downloading github.com/go-playground/locales v0.14.1 github.com/heroku/go-getting-started - - Done (1.4s) + - Done (1.3s) - Building packages: - github.com/heroku/go-getting-started - Running `go install -tags heroku github.com/heroku/go-getting-started` - - Done (26.4s) + - Done (27.0s) - Skipping launch process registration (Procfile detected) -- Done (finished in 30.3s) +- Done (finished in 32.7s) ## Procfile Buildpack @@ -204,7 +204,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (117a9da27100): +*** Images (08b533a8aea1): my-image-name Adding cache layer 'heroku/go:go_build' Adding cache layer 'heroku/go:go_deps' @@ -220,7 +220,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -117a9da27100 my-image-name latest +08b533a8aea1 my-image-name latest ``` ## What does `pack build` do? @@ -262,10 +262,10 @@ $ docker run -it --rm --env PORT=5006 -p 5006:5006 my-image-name - using code: gin.SetMode(gin.ReleaseMode) [GIN-debug] Loaded HTML Templates (4): - - - - header.tmpl.html - index.tmpl.html - nav.tmpl.html + - + - header.tmpl.html [GIN-debug] GET /static/*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (2 handlers) [GIN-debug] HEAD /static/*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (2 handlers) diff --git a/docs/java_gradle/README.md b/docs/java_gradle/README.md index 2df57480..3346c7ec 100644 --- a/docs/java_gradle/README.md +++ b/docs/java_gradle/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -123,7 +123,7 @@ This tutorial was built using the following commit SHA: ``` $ git log --oneline | head -n1 -c62e2ef Bump org.springframework.boot from 3.5.6 to 3.5.7 (#90) +7f1c8b2 Bump org.springframework.boot from 3.5.7 to 4.0.0 (#91) ``` ## Build the application image with the pack CLI @@ -148,15 +148,15 @@ Skipping buildpack layer analysis - OpenJDK version resolution - Using version string provided in `system.properties` - - Selected major version `17` resolves to `17.0.17` + - Selected major version `25` resolves to `25.0.1` - OpenJDK Installation - Downloading and unpacking OpenJDK distribution - - Done (3.0s) + - Done (3.9s) - Applying JDK overlay - Skipping (directory `.jdk-overlay` not present) - Linking base image certificates as OpenJDK keystore - Done -- Done (finished in 3.0s) +- Done (finished in 4.0s) ## Heroku Gradle Buildpack @@ -164,21 +164,38 @@ Skipping buildpack layer analysis - Starting Gradle daemon Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 - Downloading https://services.gradle.org/distributions/gradle-8.12-bin.zip - .............10%.............20%.............30%.............40%.............50%.............60%.............70%.............80%.............90%.............100% + VFORK MODE DEPRECATED + The VFORK launch mechanism has been deprecated for being dangerous. + It will be removed in a future java version. Either remove the + jdk.lang.Process.launchMechanism property (preferred) or use FORK mode + instead (-Djdk.lang.Process.launchMechanism=FORK). + + Downloading https://services.gradle.org/distributions/gradle-9.2.1-bin.zip + ............10%.............20%.............30%.............40%.............50%.............60%.............70%.............80%.............90%.............100% + WARNING: A restricted method in java.lang.System has been called + WARNING: java.lang.System::load has been called by net.rubygrapefruit.platform.internal.NativeLibraryLoader in an unnamed module (file:/layers/heroku_gradle/home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-0.22-milestone-29.jar) + WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module + WARNING: Restricted methods will be blocked in a future release unless native access is enabled + Starting a Gradle Daemon (subsequent builds will be faster) > Task :heroku_buildpack_start_daemon UP-TO-DATE - BUILD SUCCESSFUL in 29s + BUILD SUCCESSFUL in 32s + Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.2.1/userguide/configuration_cache_enabling.html - - Done (30.3s) + - Done (33.0s) - Querying tasks - - Done (1.3s) + - Done (1.4s) - Querying dependency report - - Done (6.2s) + - Done (7.4s) - Running `./gradlew build -x check` Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 + WARNING: A restricted method in java.lang.System has been called + WARNING: java.lang.System::load has been called by net.rubygrapefruit.platform.internal.NativeLibraryLoader in an unnamed module (file:/layers/heroku_gradle/home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-0.22-milestone-29.jar) + WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module + WARNING: Restricted methods will be blocked in a future release unless native access is enabled + > Task :compileJava > Task :processResources > Task :classes @@ -188,11 +205,12 @@ Skipping buildpack layer analysis > Task :assemble > Task :build - BUILD SUCCESSFUL in 6s + BUILD SUCCESSFUL in 7s 5 actionable tasks: 5 executed + Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.2.1/userguide/configuration_cache_enabling.html - - Done (6.5s) -- Done (finished in 45.2s) + - Done (7.7s) +- Done (finished in 50.4s) ## Procfile Buildpack @@ -212,7 +230,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (b97e3bd87a35): +*** Images (01d13c10096a): my-image-name Adding cache layer 'heroku/jvm:openjdk' Adding cache layer 'heroku/gradle:home' @@ -227,7 +245,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -b97e3bd87a35 my-image-name latest +01d13c10096a my-image-name latest ``` ## What does `pack build` do? @@ -272,18 +290,17 @@ Picked up JAVA_TOOL_OPTIONS: -XX:MaxRAMPercentage=80.0 -Dfile.encoding=UTF-8 | | | | __/ | | (_) | <| |_| | |_| |_|\___|_| \___/|_|\_\\__,_| -:: Built with Spring Boot :: 3.5.7 - -2025-12-08T08:18:24.345Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Starting GettingStartedApplication v1.0.0-SNAPSHOT using Java 17.0.17 with PID 1 (/workspace/build/libs/java-getting-started-gradle-1.0.0-SNAPSHOT.jar started by heroku in /workspace) -2025-12-08T08:18:24.348Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : No active profile set, falling back to 1 default profile: "default" -2025-12-08T08:18:25.329Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 5006 (http) -2025-12-08T08:18:25.340Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2025-12-08T08:18:25.340Z INFO 1 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.48] -2025-12-08T08:18:25.366Z INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2025-12-08T08:18:25.367Z INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 946 ms -2025-12-08T08:18:25.485Z INFO 1 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index -2025-12-08T08:18:25.747Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 5006 (http) with context path '/' -2025-12-08T08:18:25.761Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Started GettingStartedApplication in 1.845 seconds (process running for 2.264) +:: Built with Spring Boot :: 4.0.0 + +2025-12-15T08:18:50.518Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Starting GettingStartedApplication v1.0.0-SNAPSHOT using Java 25.0.1 with PID 1 (/workspace/build/libs/java-getting-started-gradle-1.0.0-SNAPSHOT.jar started by heroku in /workspace) +2025-12-15T08:18:50.528Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : No active profile set, falling back to 1 default profile: "default" +2025-12-15T08:18:51.627Z INFO 1 --- [ main] o.s.boot.tomcat.TomcatWebServer : Tomcat initialized with port 5006 (http) +2025-12-15T08:18:51.642Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-15T08:18:51.642Z INFO 1 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/11.0.14] +2025-12-15T08:18:51.667Z INFO 1 --- [ main] b.w.c.s.WebApplicationContextInitializer : Root WebApplicationContext: initialization completed in 1064 ms +2025-12-15T08:18:51.804Z INFO 1 --- [ main] o.s.b.w.a.WelcomePageHandlerMapping : Adding welcome page template: index +2025-12-15T08:18:52.091Z INFO 1 --- [ main] o.s.boot.tomcat.TomcatWebServer : Tomcat started on port 5006 (http) with context path '/' +2025-12-15T08:18:52.103Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Started GettingStartedApplication in 2.049 seconds (process running for 2.568) ``` diff --git a/docs/java_maven/README.md b/docs/java_maven/README.md index da78b379..78222317 100644 --- a/docs/java_maven/README.md +++ b/docs/java_maven/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -122,7 +122,7 @@ This tutorial was built using the following commit SHA: ``` $ git log --oneline | head -n1 -289da88 Bump org.springframework.boot:spring-boot-starter-parent (#231) +172fd45 Bump org.springframework.boot:spring-boot-starter-parent (#232) ``` ## Build the application image with the pack CLI @@ -150,12 +150,12 @@ Skipping buildpack layer analysis - Selected major version `17` resolves to `17.0.17` - OpenJDK Installation - Downloading and unpacking OpenJDK distribution - - Done (3.3s) + - Done (3.2s) - Applying JDK overlay - Skipping (directory `.jdk-overlay` not present) - Linking base image certificates as OpenJDK keystore - Done -- Done (finished in 3.3s) +- Done (finished in 3.2s) ## Heroku Maven Buildpack @@ -166,49 +166,49 @@ Skipping buildpack layer analysis Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 [INFO] Scanning for projects... - [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.5.7/spring-boot-starter-parent-3.5.7.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.5.7/spring-boot-starter-parent-3.5.7.pom (13 kB at 100 kB/s) - [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/3.5.7/spring-boot-dependencies-3.5.7.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/3.5.7/spring-boot-dependencies-3.5.7.pom (96 kB at 1.4 MB/s) + [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/4.0.0/spring-boot-starter-parent-4.0.0.pom + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/4.0.0/spring-boot-starter-parent-4.0.0.pom (14 kB at 92 kB/s) + [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/4.0.0/spring-boot-dependencies-4.0.0.pom + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-dependencies/4.0.0/spring-boot-dependencies-4.0.0.pom (137 kB at 1.8 MB/s) [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/activemq/activemq-bom/6.1.8/activemq-bom-6.1.8.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/activemq/activemq-bom/6.1.8/activemq-bom-6.1.8.pom (7.9 kB at 119 kB/s) - [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-bom/2.40.0/artemis-bom-2.40.0.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-bom/2.40.0/artemis-bom-2.40.0.pom (9.6 kB at 166 kB/s) - [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-project/2.40.0/artemis-project-2.40.0.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-project/2.40.0/artemis-project-2.40.0.pom (56 kB at 1.0 MB/s) - [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/apache/33/apache-33.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/apache/33/apache-33.pom (24 kB at 456 kB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/activemq/activemq-bom/6.1.8/activemq-bom-6.1.8.pom (7.9 kB at 123 kB/s) + [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-bom/2.43.0/artemis-bom-2.43.0.pom + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-bom/2.43.0/artemis-bom-2.43.0.pom (9.4 kB at 147 kB/s) + [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-project/2.43.0/artemis-project-2.43.0.pom + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-project/2.43.0/artemis-project-2.43.0.pom (56 kB at 759 kB/s) + [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/apache/35/apache-35.pom + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/apache/35/apache-35.pom (24 kB at 351 kB/s) [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/assertj/assertj-bom/3.27.6/assertj-bom-3.27.6.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/assertj/assertj-bom/3.27.6/assertj-bom-3.27.6.pom (3.3 kB at 48 kB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/assertj/assertj-bom/3.27.6/assertj-bom-3.27.6.pom (3.3 kB at 54 kB/s) [INFO] Downloading from central: https://repo.maven.apache.org/maven2/io/zipkin/reporter2/zipkin-reporter-bom/3.5.1/zipkin-reporter-bom-3.5.1.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/io/zipkin/reporter2/zipkin-reporter-bom/3.5.1/zipkin-reporter-bom-3.5.1.pom (6.3 kB at 118 kB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/io/zipkin/reporter2/zipkin-reporter-bom/3.5.1/zipkin-reporter-bom-3.5.1.pom (6.3 kB at 95 kB/s) ... [INFO] The original artifact has been renamed to /workspace/target/java-getting-started-1.0.0-SNAPSHOT.jar.original [INFO] [INFO] --- maven-install-plugin:3.1.4:install (default-install) @ java-getting-started --- [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.pom (2.2 kB at 34 kB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.pom (2.2 kB at 39 kB/s) [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver/1.9.22/maven-resolver-1.9.22.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver/1.9.22/maven-resolver-1.9.22.pom (23 kB at 398 kB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver/1.9.22/maven-resolver-1.9.22.pom (23 kB at 301 kB/s) [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.pom - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.pom (2.2 kB at 36 kB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.pom (2.2 kB at 26 kB/s) [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.jar [INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.jar - [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.jar (157 kB at 2.9 MB/s) + [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-api/1.9.22/maven-resolver-api-1.9.22.jar (157 kB at 2.5 MB/s) [INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/apache/maven/resolver/maven-resolver-util/1.9.22/maven-resolver-util-1.9.22.jar (196 kB at 3.0 MB/s) [INFO] Installing /workspace/pom.xml to /layers/heroku_maven/repository/com/heroku/java-getting-started/1.0.0-SNAPSHOT/java-getting-started-1.0.0-SNAPSHOT.pom [INFO] Installing /workspace/target/java-getting-started-1.0.0-SNAPSHOT.jar to /layers/heroku_maven/repository/com/heroku/java-getting-started/1.0.0-SNAPSHOT/java-getting-started-1.0.0-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ - [INFO] Total time: 19.238 s - [INFO] Finished at: 2025-12-08T08:16:50Z + [INFO] Total time: 22.244 s + [INFO] Finished at: 2025-12-15T08:17:06Z [INFO] ------------------------------------------------------------------------ - - Done (20.7s) + - Done (23.8s) - Running `./mvnw dependency:list` quietly - - Done (10.6s) -- Done (finished in 31.4s) + - Done (12.7s) +- Done (finished in 36.6s) ## Procfile Buildpack @@ -228,7 +228,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (b285ca4fc0e3): +*** Images (7addc67f4961): my-image-name Adding cache layer 'heroku/jvm:openjdk' Adding cache layer 'heroku/maven:repository' @@ -243,7 +243,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -b285ca4fc0e3 my-image-name latest +7addc67f4961 my-image-name latest ``` ## What does `pack build` do? @@ -288,18 +288,17 @@ Picked up JAVA_TOOL_OPTIONS: -XX:MaxRAMPercentage=80.0 -Dfile.encoding=UTF-8 | | | | __/ | | (_) | <| |_| | |_| |_|\___|_| \___/|_|\_\\__,_| -:: Built with Spring Boot :: 3.5.7 - -2025-12-08T08:17:10.194Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Starting GettingStartedApplication v1.0.0-SNAPSHOT using Java 17.0.17 with PID 1 (/workspace/target/java-getting-started-1.0.0-SNAPSHOT.jar started by heroku in /workspace) -2025-12-08T08:17:10.199Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : No active profile set, falling back to 1 default profile: "default" -2025-12-08T08:17:11.220Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 5006 (http) -2025-12-08T08:17:11.234Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2025-12-08T08:17:11.235Z INFO 1 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.48] -2025-12-08T08:17:11.265Z INFO 1 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2025-12-08T08:17:11.266Z INFO 1 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 993 ms -2025-12-08T08:17:11.406Z INFO 1 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page template: index -2025-12-08T08:17:11.701Z INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 5006 (http) with context path '/' -2025-12-08T08:17:11.720Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Started GettingStartedApplication in 1.999 seconds (process running for 2.415) +:: Built with Spring Boot :: 4.0.0 + +2025-12-15T08:17:28.084Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Starting GettingStartedApplication v1.0.0-SNAPSHOT using Java 17.0.17 with PID 1 (/workspace/target/java-getting-started-1.0.0-SNAPSHOT.jar started by heroku in /workspace) +2025-12-15T08:17:28.092Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : No active profile set, falling back to 1 default profile: "default" +2025-12-15T08:17:29.185Z INFO 1 --- [ main] o.s.boot.tomcat.TomcatWebServer : Tomcat initialized with port 5006 (http) +2025-12-15T08:17:29.201Z INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2025-12-15T08:17:29.201Z INFO 1 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/11.0.14] +2025-12-15T08:17:29.233Z INFO 1 --- [ main] b.w.c.s.WebApplicationContextInitializer : Root WebApplicationContext: initialization completed in 1055 ms +2025-12-15T08:17:29.389Z INFO 1 --- [ main] o.s.b.w.a.WelcomePageHandlerMapping : Adding welcome page template: index +2025-12-15T08:17:29.770Z INFO 1 --- [ main] o.s.boot.tomcat.TomcatWebServer : Tomcat started on port 5006 (http) with context path '/' +2025-12-15T08:17:29.784Z INFO 1 --- [ main] c.heroku.java.GettingStartedApplication : Started GettingStartedApplication in 2.211 seconds (process running for 2.723) ``` diff --git a/docs/nodejs/README.md b/docs/nodejs/README.md index 5c274eb6..7b1fc170 100644 --- a/docs/nodejs/README.md +++ b/docs/nodejs/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -135,7 +135,7 @@ $ pack build my-image-name --path . Image with name "my-image-name" not found ===> DETECTING 2 of 3 buildpacks participating -heroku/nodejs 5.3.0 +heroku/nodejs 5.3.2 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -145,13 +145,14 @@ Skipping buildpack layer analysis - Checking Node.js version - Detected Node.js version range: `20.x || 22.x || 24.x` - - Resolved Node.js version: `24.11.1` + - Resolved Node.js version: `24.12.0` - Installing Node.js distribution - - GET https://nodejs.org/download/release/v24.11.1/node-v24.11.1-linux-x64.tar.gz ... (OK) - - Downloading .... (1.9s) + - GET https://nodejs.org/download/release/v24.12.0/node-v24.12.0-linux-x64.tar.gz ... (0.3s) + - Validating ... (< 0.1s) + - Extracting ... (0.7s) - Verifying checksum - - Extracting Node.js `24.11.1 (linux-amd64)` - - Installing Node.js `24.11.1 (linux-amd64)` ... (< 0.1s) + - Extracting Node.js `24.12.0 (linux-amd64)` + - Installing Node.js `24.12.0 (linux-amd64)` ... (< 0.1s) - Installing node modules - Using npm version `11.6.2` - Creating npm cache @@ -168,24 +169,24 @@ Skipping buildpack layer analysis found 0 vulnerabilities - - Done (3.1s) + - Done (3.3s) - Running scripts - No build scripts found - Pruning dev dependencies - Running `npm prune` - up to date, audited 367 packages in 606ms + up to date, audited 367 packages in 655ms 61 packages are looking for funding run `npm fund` for details found 0 vulnerabilities - - Done (0.6s) + - Done (0.7s) - Configuring default processes - Skipping default web process (Procfile detected) -- Done (finished in 6.3s) +- Done (finished in 5.7s) ## Procfile Buildpack @@ -207,7 +208,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (aa11ab7d0f97): +*** Images (e8d76095b496): my-image-name Adding cache layer 'heroku/nodejs:dist' Adding cache layer 'heroku/nodejs:npm_cache' @@ -222,7 +223,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -aa11ab7d0f97 my-image-name latest +e8d76095b496 my-image-name latest ``` ## What does `pack build` do? @@ -236,7 +237,7 @@ When you run `pack build` with a builder, each buildpack runs a detection script ``` ===> DETECTING 2 of 3 buildpacks participating -heroku/nodejs 5.3.0 +heroku/nodejs 5.3.2 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis diff --git a/docs/php/README.md b/docs/php/README.md index 83e1647b..e3d6f20d 100644 --- a/docs/php/README.md +++ b/docs/php/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -132,7 +132,7 @@ $ pack build my-image-name --path . Image with name "my-image-name" not found ===> DETECTING 2 of 3 buildpacks participating -heroku/php 1.2.0 +heroku/php 1.3.0 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -143,7 +143,7 @@ Skipping buildpack layer analysis - Bootstrapping - Preparing platform packages installation - Installing platform packages - - php (8.4.15) + - php (8.5.0) - composer (2.9.2) - Installing web servers - nginx (1.28.0) @@ -201,7 +201,7 @@ Skipping buildpack layer analysis 9 packages you are using are looking for funding. Use the `composer fund` command to find out more! - Preparing Composer runtime environment -- Done (finished in 6.5s) +- Done (finished in 6.7s) ## Procfile Buildpack @@ -222,7 +222,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (8242ab4258da): +*** Images (5d6fccf399fd): my-image-name Adding cache layer 'heroku/php:composer_cache' Adding cache layer 'heroku/php:platform_cache' @@ -237,7 +237,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -8242ab4258da my-image-name latest +5d6fccf399fd my-image-name latest ``` ## What does `pack build` do? @@ -251,7 +251,7 @@ When you run `pack build` with a builder, each buildpack runs a detection script ``` ===> DETECTING 2 of 3 buildpacks participating -heroku/php 1.2.0 +heroku/php 1.3.0 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis diff --git a/docs/python/README.md b/docs/python/README.md index c92e7451..05b05292 100644 --- a/docs/python/README.md +++ b/docs/python/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -123,7 +123,7 @@ This tutorial was built using the following commit SHA: ``` $ git log --oneline | head -n1 -f9ca3b8 Update to Python 3.14 (#264) +757dd9a Update to Django 6.0 (#267) ``` ## Build the application image with the pack CLI @@ -137,7 +137,7 @@ $ pack build my-image-name --path . Image with name "my-image-name" not found ===> DETECTING 2 of 3 buildpacks participating -heroku/python 3.0.0 +heroku/python 3.0.1 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -155,21 +155,21 @@ Installing pip 25.2 [Installing dependencies using pip] Creating virtual environment Running 'pip install -r requirements.txt' -Collecting django<5.3,>=5.2 (from -r requirements.txt (line 1)) - Downloading django-5.2.9-py3-none-any.whl.metadata (4.1 kB) +Collecting django<6.1,>=6.0 (from -r requirements.txt (line 1)) + Downloading django-6.0-py3-none-any.whl.metadata (3.9 kB) Collecting gunicorn<24,>=23 (from -r requirements.txt (line 2)) Downloading gunicorn-23.0.0-py3-none-any.whl.metadata (4.4 kB) Collecting dj-database-url<4,>=3 (from -r requirements.txt (line 3)) Downloading dj_database_url-3.0.1-py3-none-any.whl.metadata (14 kB) Collecting whitenoise<7,>=6 (from -r requirements.txt (line 4)) Downloading whitenoise-6.11.0-py3-none-any.whl.metadata (3.7 kB) -Collecting asgiref>=3.8.1 (from django<5.3,>=5.2->-r requirements.txt (line 1)) +Collecting asgiref>=3.9.1 (from django<6.1,>=6.0->-r requirements.txt (line 1)) Downloading asgiref-3.11.0-py3-none-any.whl.metadata (9.3 kB) -Collecting sqlparse>=0.3.1 (from django<5.3,>=5.2->-r requirements.txt (line 1)) +Collecting sqlparse>=0.5.0 (from django<6.1,>=6.0->-r requirements.txt (line 1)) Downloading sqlparse-0.5.4-py3-none-any.whl.metadata (4.7 kB) Collecting packaging (from gunicorn<24,>=23->-r requirements.txt (line 2)) Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB) -Downloading django-5.2.9-py3-none-any.whl (8.3 MB) +Downloading django-6.0-py3-none-any.whl (8.3 MB) Downloading gunicorn-23.0.0-py3-none-any.whl (85 kB) Downloading dj_database_url-3.0.1-py3-none-any.whl (8.8 kB) Downloading whitenoise-6.11.0-py3-none-any.whl (20 kB) @@ -177,7 +177,7 @@ Downloading asgiref-3.11.0-py3-none-any.whl (24 kB) Downloading sqlparse-0.5.4-py3-none-any.whl (45 kB) Downloading packaging-25.0-py3-none-any.whl (66 kB) Installing collected packages: whitenoise, sqlparse, packaging, asgiref, gunicorn, django, dj-database-url -Successfully installed asgiref-3.11.0 dj-database-url-3.0.1 django-5.2.9 gunicorn-23.0.0 packaging-25.0 sqlparse-0.5.4 whitenoise-6.11.0 +Successfully installed asgiref-3.11.0 dj-database-url-3.0.1 django-6.0 gunicorn-23.0.0 packaging-25.0 sqlparse-0.5.4 whitenoise-6.11.0 [Generating Django static files] Running 'manage.py collectstatic' @@ -202,7 +202,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (970c53c8484a): +*** Images (59464479a7b7): my-image-name Adding cache layer 'heroku/python:pip' Adding cache layer 'heroku/python:pip-cache' @@ -218,7 +218,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -970c53c8484a my-image-name latest +59464479a7b7 my-image-name latest ``` ## What does `pack build` do? @@ -232,7 +232,7 @@ When you run `pack build` with a builder, each buildpack runs a detection script ``` ===> DETECTING 2 of 3 buildpacks participating -heroku/python 3.0.0 +heroku/python 3.0.1 heroku/procfile 4.2.1 ===> RESTORING Skipping buildpack layer analysis @@ -255,10 +255,10 @@ By default, images will be booted into a web server configuration. You can launc ``` $ docker run -it --rm --env PORT=5006 -p 5006:5006 my-image-name -[2025-12-08 08:14:48 +0000] [1] [INFO] Starting gunicorn 23.0.0 -[2025-12-08 08:14:48 +0000] [1] [INFO] Listening at: http://[::]:5006 (1) -[2025-12-08 08:14:48 +0000] [1] [INFO] Using worker: gthread -[2025-12-08 08:14:48 +0000] [11] [INFO] Booting worker with pid: 11 +[2025-12-15 08:14:57 +0000] [1] [INFO] Starting gunicorn 23.0.0 +[2025-12-15 08:14:57 +0000] [1] [INFO] Listening at: http://[::]:5006 (1) +[2025-12-15 08:14:57 +0000] [1] [INFO] Using worker: gthread +[2025-12-15 08:14:57 +0000] [11] [INFO] Booting worker with pid: 11 ``` diff --git a/docs/ruby/README.md b/docs/ruby/README.md index f9b71583..2e21f9a5 100644 --- a/docs/ruby/README.md +++ b/docs/ruby/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -173,8 +173,8 @@ Skipping buildpack layer analysis Installing drb 2.2.3 Fetching logger 1.7.0 Fetching minitest 5.25.5 - Installing logger 1.7.0 Installing concurrent-ruby 1.3.5 + Installing logger 1.7.0 Installing minitest 5.25.5 Fetching securerandom 0.4.1 Installing securerandom 0.4.1 @@ -186,12 +186,12 @@ Skipping buildpack layer analysis Installing erubi 1.13.1 Fetching racc 1.8.1 Fetching crass 1.0.6 - Installing crass 1.0.6 Installing racc 1.8.1 with native extensions + Installing crass 1.0.6 Fetching rack 3.2.3 - Installing rack 3.2.3 Fetching useragent 0.16.11 Installing useragent 0.16.11 + Installing rack 3.2.3 Fetching nio4r 2.7.5 Fetching websocket-extensions 0.1.5 Installing nio4r 2.7.5 with native extensions @@ -257,27 +257,27 @@ Skipping buildpack layer analysis Fetching net-smtp 0.5.1 Installing net-smtp 0.5.1 Fetching loofah 2.24.1 - Installing loofah 2.24.1 Fetching activesupport 8.0.3 - Installing activesupport 8.0.3 + Installing loofah 2.24.1 Fetching listen 3.9.0 + Installing activesupport 8.0.3 Installing listen 3.9.0 + Fetching reline 0.6.2 + Installing reline 0.6.2 Fetching net-imap 0.5.11 Installing net-imap 0.5.11 Fetching psych 5.2.6 - Fetching rails-html-sanitizer 1.6.2 Installing psych 5.2.6 with native extensions + Fetching rails-html-sanitizer 1.6.2 Installing rails-html-sanitizer 1.6.2 + Fetching mail 2.8.1 + Installing mail 2.8.1 Fetching rails-dom-testing 2.3.0 Installing rails-dom-testing 2.3.0 Fetching globalid 1.3.0 Installing globalid 1.3.0 Fetching activemodel 8.0.3 Installing activemodel 8.0.3 - Fetching mail 2.8.1 - Installing mail 2.8.1 - Fetching reline 0.6.2 - Installing reline 0.6.2 Fetching actionview 8.0.3 Installing actionview 8.0.3 Fetching activejob 8.0.3 @@ -287,16 +287,16 @@ Skipping buildpack layer analysis Fetching actionpack 8.0.3 Installing actionpack 8.0.3 Fetching actioncable 8.0.3 + Installing actioncable 8.0.3 Fetching activestorage 8.0.3 Installing activestorage 8.0.3 - Installing actioncable 8.0.3 Fetching actionmailer 8.0.3 - Fetching propshaft 1.3.1 Installing actionmailer 8.0.3 + Fetching propshaft 1.3.1 Installing propshaft 1.3.1 Fetching actionmailbox 8.0.3 - Fetching actiontext 8.0.3 Installing actionmailbox 8.0.3 + Fetching actiontext 8.0.3 Installing actiontext 8.0.3 Fetching rdoc 6.15.1 Installing rdoc 6.15.1 @@ -314,14 +314,14 @@ Skipping buildpack layer analysis Gems in the groups 'development' and 'test' were not installed. Use `bundle info [gemname]` to see where a bundled gem is installed. - - Done (15.6s) - - Running `bundle clean --force` ... (0.1s) + - Done (15.4s) + - Running `bundle clean --force` ... (0.2s) - Default process detection - Running `bundle list` ... (0.1s) - Detected rails app (`rails` gem found) - Rake assets install - Detected rake (`rake` gem found, `Rakefile` found at `/workspace/Rakefile`) - - Running `rake -P --trace` .... (1.4s) + - Running `rake -P --trace` .... (1.5s) - Compiling assets with cache (detected `rake assets:precompile` and `rake assets:clean` via `rake -P`) - Creating cache for /workspace/public/assets - Creating cache for /workspace/tmp/cache/assets @@ -351,7 +351,7 @@ Skipping buildpack layer analysis - Done (0.7s) - Storing cache for /workspace/public/assets - Storing cache for (empty) /workspace/tmp/cache/assets -- Done (finished in 20.5s) +- Done (finished in 20.4s) ## Procfile Buildpack @@ -376,7 +376,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (48d870e99752): +*** Images (eb7033ab39af): my-image-name Adding cache layer 'heroku/ruby:binruby' Adding cache layer 'heroku/ruby:bundler' @@ -394,7 +394,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -48d870e99752 my-image-name latest +eb7033ab39af my-image-name latest ``` ## What does `pack build` do? @@ -444,7 +444,7 @@ $ docker run -it --rm --env PORT=5006 -p 5006:5006 my-image-name [1] * Listening on http://[::]:5006 [1] Use Ctrl-C to stop [1] - Worker 0 (PID: 16) booted in 0.01s, phase: 0 -[1] - Worker 1 (PID: 19) booted in 0.0s, phase: 0 +[1] - Worker 1 (PID: 19) booted in 0.01s, phase: 0 ``` @@ -595,7 +595,7 @@ $ pack build my-image-name --path . ===> ANALYZING Image with name "my-image-name" not found ===> DETECTING -heroku/nodejs 5.3.0 +heroku/nodejs 5.3.2 heroku/ruby 12.2.0 heroku/procfile 4.2.1 ===> RESTORING @@ -606,21 +606,22 @@ Skipping buildpack layer analysis - Checking Node.js version - Node.js version not specified, using `24.x` - - Resolved Node.js version: `24.11.1` + - Resolved Node.js version: `24.12.0` - Installing Node.js distribution - - GET https://nodejs.org/download/release/v24.11.1/node-v24.11.1-linux-x64.tar.gz ... (OK) - - Downloading ..... (2.0s) + - GET https://nodejs.org/download/release/v24.12.0/node-v24.12.0-linux-x64.tar.gz ... (0.9s) + - Validating ... (< 0.1s) + - Extracting ... (0.7s) - Verifying checksum - - Extracting Node.js `24.11.1 (linux-amd64)` - - Installing Node.js `24.11.1 (linux-amd64)` ... (< 0.1s) -- Done (finished in 2.2s) + - Extracting Node.js `24.12.0 (linux-amd64)` + - Installing Node.js `24.12.0 (linux-amd64)` ... (< 0.1s) +- Done (finished in 1.9s) ## Heroku Ruby Buildpack - Ruby version `3.4.6` from `Gemfile.lock` - - Installing .... (1.9s) + - Installing .... (1.8s) - Bundler version `2.7.2` from `Gemfile.lock` - - Running `gem install bundler --version 2.7.2 --install-dir /layers/heroku_ruby/bundler --bindir /layers/heroku_ruby/bundler/bin --force --no-document --env-shebang` ... (0.3s) + - Running `gem install bundler --version 2.7.2 --install-dir /layers/heroku_ruby/bundler --bindir /layers/heroku_ruby/bundler/bin --force --no-document --env-shebang` ... (0.4s) - Bundle install gems - Running `BUNDLE_FROZEN="1" BUNDLE_GEMFILE="/workspace/Gemfile" BUNDLE_WITHOUT="development:test" bundle install` @@ -640,8 +641,8 @@ Skipping buildpack layer analysis Installing drb 2.2.3 Fetching logger 1.7.0 Fetching minitest 5.25.5 - Installing concurrent-ruby 1.3.5 Installing logger 1.7.0 + Installing concurrent-ruby 1.3.5 Installing minitest 5.25.5 Fetching securerandom 0.4.1 Installing securerandom 0.4.1 @@ -726,25 +727,25 @@ Skipping buildpack layer analysis Fetching loofah 2.24.1 Installing loofah 2.24.1 Fetching activesupport 8.0.3 - Installing activesupport 8.0.3 Fetching listen 3.9.0 Installing listen 3.9.0 + Installing activesupport 8.0.3 Fetching net-imap 0.5.11 - Fetching psych 5.2.6 Installing net-imap 0.5.11 + Fetching psych 5.2.6 Installing psych 5.2.6 with native extensions - Fetching rails-html-sanitizer 1.6.2 - Installing rails-html-sanitizer 1.6.2 Fetching reline 0.6.2 Installing reline 0.6.2 + Fetching rails-html-sanitizer 1.6.2 + Installing rails-html-sanitizer 1.6.2 + Fetching mail 2.8.1 + Installing mail 2.8.1 Fetching rails-dom-testing 2.3.0 Installing rails-dom-testing 2.3.0 Fetching globalid 1.3.0 Installing globalid 1.3.0 Fetching activemodel 8.0.3 Installing activemodel 8.0.3 - Fetching mail 2.8.1 - Installing mail 2.8.1 Fetching actionview 8.0.3 Installing actionview 8.0.3 Fetching activejob 8.0.3 @@ -781,14 +782,14 @@ Skipping buildpack layer analysis Gems in the groups 'development' and 'test' were not installed. Use `bundle info [gemname]` to see where a bundled gem is installed. - - Done (15.2s) + - Done (15.7s) - Running `bundle clean --force` ... (0.2s) - Default process detection - Running `bundle list` ... (0.1s) - Detected rails app (`rails` gem found) - Rake assets install - Detected rake (`rake` gem found, `Rakefile` found at `/workspace/Rakefile`) - - Running `rake -P --trace` .... (1.4s) + - Running `rake -P --trace` .... (1.6s) - Compiling assets with cache (detected `rake assets:precompile` and `rake assets:clean` via `rake -P`) - Creating cache for /workspace/public/assets - Creating cache for /workspace/tmp/cache/assets @@ -818,7 +819,7 @@ Skipping buildpack layer analysis - Done (0.7s) - Storing cache for /workspace/public/assets - Storing cache for (empty) /workspace/tmp/cache/assets -- Done (finished in 20.2s) +- Done (finished in 20.8s) ## Procfile Buildpack @@ -846,7 +847,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (68924dc42360): +*** Images (1b4b32a390d3): my-image-name Adding cache layer 'heroku/nodejs:dist' Adding cache layer 'heroku/ruby:binruby' diff --git a/docs/scala/README.md b/docs/scala/README.md index 03f7f21d..a4e8a5dd 100644 --- a/docs/scala/README.md +++ b/docs/scala/README.md @@ -64,17 +64,17 @@ You can view the contents of a builder via the command `pack builder inspect`. F $ pack builder inspect heroku/builder:24 | awk '/^Buildpacks:/ {flag=1} /^Detection Order:/ {exit} flag' Buildpacks: ID NAME VERSION HOMEPAGE - heroku/deb-packages Heroku .deb Packages 0.2.0 https://github.com/heroku/buildpacks-deb-packages - heroku/dotnet Heroku .NET 0.12.0 https://github.com/heroku/buildpacks-dotnet + heroku/deb-packages Heroku .deb Packages 0.3.0 https://github.com/heroku/buildpacks-deb-packages + heroku/dotnet Heroku .NET 0.14.0 https://github.com/heroku/buildpacks-dotnet heroku/go Heroku Go 2.1.6 https://github.com/heroku/buildpacks-go heroku/gradle Heroku Gradle 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/java Heroku Java 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/jvm Heroku OpenJDK 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/maven Heroku Maven 7.0.7 https://github.com/heroku/buildpacks-jvm - heroku/nodejs Heroku Node.js 5.3.0 https://github.com/heroku/buildpacks-nodejs - heroku/php Heroku PHP 1.2.0 https://github.com/heroku/buildpacks-php + heroku/nodejs Heroku Node.js 5.3.2 https://github.com/heroku/buildpacks-nodejs + heroku/php Heroku PHP 1.3.0 https://github.com/heroku/buildpacks-php heroku/procfile Heroku Procfile 4.2.1 https://github.com/heroku/buildpacks-procfile - heroku/python Heroku Python 3.0.0 https://github.com/heroku/buildpacks-python + heroku/python Heroku Python 3.0.1 https://github.com/heroku/buildpacks-python heroku/ruby Heroku Ruby 12.2.0 https://github.com/heroku/buildpacks-ruby heroku/sbt Heroku sbt 7.0.7 https://github.com/heroku/buildpacks-jvm heroku/scala Heroku Scala 7.0.7 https://github.com/heroku/buildpacks-jvm @@ -113,7 +113,6 @@ README.md app app.json build.sbt -build.sc conf project public @@ -125,7 +124,7 @@ This tutorial was built using the following commit SHA: ``` $ git log --oneline | head -n1 -384d995 Update repo metadata (#16) +524293b Upgrade to Play Framework 3.0.9 (#17) ``` ## Build the application image with the pack CLI @@ -165,25 +164,25 @@ Skipping buildpack layer analysis - Running sbt build - Running `sbt compile stage` - Downloading sbt launcher for 1.7.2: - From https://repo1.maven.org/maven2/org/scala-sbt/sbt-launch/1.7.2/sbt-launch-1.7.2.jar - To /layers/heroku_sbt/sbt-extras/launchers/1.7.2/sbt-launch.jar - Downloading sbt launcher 1.7.2 md5 hash: - From https://repo1.maven.org/maven2/org/scala-sbt/sbt-launch/1.7.2/sbt-launch-1.7.2.jar.md5 - To /layers/heroku_sbt/sbt-extras/launchers/1.7.2/sbt-launch.jar.md5 - /layers/heroku_sbt/sbt-extras/launchers/1.7.2/sbt-launch.jar: OK + Downloading sbt launcher for 1.11.7: + From https://repo1.maven.org/maven2/org/scala-sbt/sbt-launch/1.11.7/sbt-launch-1.11.7.jar + To /layers/heroku_sbt/sbt-extras/launchers/1.11.7/sbt-launch.jar + Downloading sbt launcher 1.11.7 md5 hash: + From https://repo1.maven.org/maven2/org/scala-sbt/sbt-launch/1.11.7/sbt-launch-1.11.7.jar.md5 + To /layers/heroku_sbt/sbt-extras/launchers/1.11.7/sbt-launch.jar.md5 + /layers/heroku_sbt/sbt-extras/launchers/1.11.7/sbt-launch.jar: OK Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 - [info] [launcher] getting org.scala-sbt sbt 1.7.2 (this may take some time)... - [info] [launcher] getting Scala 2.12.16 (for sbt)... - [info] welcome to sbt 1.7.2 (Azul Systems, Inc. Java 17.0.17) + [info] [launcher] getting org.scala-sbt sbt 1.11.7 (this may take some time)... + [info] [launcher] getting Scala 2.12.20 (for sbt)... + [info] welcome to sbt 1.11.7 (Azul Systems, Inc. Java 17.0.17) [info] loading global plugins from /layers/heroku_sbt/sbt-global/plugins [info] compiling 1 Scala source to /layers/heroku_sbt/sbt-global/plugins/target/scala-2.12/sbt-1.0/classes ... - [info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.16. Compiling... - [info] Compilation completed in 8.609s. + [info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.20. Compiling... + [info] Compilation completed in 9.512s. [info] done compiling - [info] loading settings for project workspace-build from plugins.sbt ... + [info] loading settings for project workspace-build from plugins.sbt... [info] loading project definition from /workspace/project - [info] loading settings for project root from build.sbt ... + [info] loading settings for project root from build.sbt... [info] __ __ [info] \ \ ____ / /____ _ __ __ [info] \ \ / __ \ / // __ `// / / / @@ -191,24 +190,19 @@ Skipping buildpack layer analysis [info] /_/ / .___//_/ \__,_/ \__, / [info] /_/ /____/ [info] - [info] Version 2.8.19 running Java 17.0.17 + [info] Version 3.0.9 running Java 17.0.17 [info] [info] Play is run entirely by the community. Please consider contributing and/or donating: [info] https://www.playframework.com/sponsors [info] - [info] Running Play on Java 17 is experimental. Tweaks are necessary: - [info] https://github.com/playframework/playframework/releases/2.8.15 - [info] [info] compiling 8 Scala sources and 1 Java source to /workspace/target/scala-2.13/classes ... - [info] Non-compiled module 'compiler-bridge_2.13' for Scala 2.13.10. Compiling... - [info] Compilation completed in 8.023s. [info] done compiling - [success] Total time: 14 s, completed Dec 8, 2025, 8:19:27 AM + [success] Total time: 10 s, completed Dec 15, 2025, 8:19:46 AM [info] Wrote /workspace/target/scala-2.13/scala-getting-started_2.13-1.0-SNAPSHOT.pom - [success] Total time: 1 s, completed Dec 8, 2025, 8:19:28 AM + [success] Total time: 1 s, completed Dec 15, 2025, 8:19:47 AM - - Done (45.9s) -- Done (finished in 45.9s) + - Done (38.4s) +- Done (finished in 38.4s) ## Procfile Buildpack @@ -228,7 +222,7 @@ Adding label 'io.buildpacks.build.metadata' Adding label 'io.buildpacks.project.metadata' Setting default process type 'web' Saving my-image-name... -*** Images (bdba8c5d053d): +*** Images (7adf60748995): my-image-name Adding cache layer 'heroku/jvm:openjdk' Adding cache layer 'heroku/sbt:coursier-home' @@ -246,7 +240,7 @@ Verify that you see “Successfully built image my-image-name” at the end of t ``` $ docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}" | grep my-image-name -bdba8c5d053d my-image-name latest +7adf60748995 my-image-name latest ``` ## What does `pack build` do? @@ -284,10 +278,87 @@ By default, images will be booted into a web server configuration. You can launc ``` $ docker run -it --rm --env PORT=5006 -p 5006:5006 my-image-name Picked up JAVA_TOOL_OPTIONS: -XX:MaxRAMPercentage=80.0 -Dfile.encoding=UTF-8 -2025-12-08 08:19:39 INFO play.api.db.DefaultDBApi Database [default] initialized -2025-12-08 08:19:39 INFO play.api.db.HikariCPConnectionPool Creating Pool for datasource 'default' -2025-12-08 08:19:40 INFO play.api.Play Application started (Prod) (no global state) -2025-12-08 08:19:41 INFO play.core.server.AkkaHttpServer Listening for HTTP on /[0:0:0:0:0:0:0:0]:5006 +08:19:57,928 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.5.18 +08:19:57,931 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - No custom configurators were discovered as a service. +08:19:57,931 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - Trying to configure with ch.qos.logback.classic.joran.SerializedModelConfigurator +08:19:57,932 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - Constructed configurator of type class ch.qos.logback.classic.joran.SerializedModelConfigurator +08:19:57,940 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.scmo] +08:19:57,940 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.scmo] +08:19:57,952 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - ch.qos.logback.classic.joran.SerializedModelConfigurator.configure() call lasted 10 milliseconds. ExecutionStatus=INVOKE_NEXT_IF_ANY +08:19:57,952 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - Trying to configure with ch.qos.logback.classic.util.DefaultJoranConfigurator +08:19:57,952 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - Constructed configurator of type class ch.qos.logback.classic.util.DefaultJoranConfigurator +08:19:57,953 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] +08:19:57,958 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/workspace/target/universal/stage/conf/logback.xml] +08:19:58,077 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [FILE] +08:19:58,077 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.FileAppender] +08:19:58,086 |-INFO in ch.qos.logback.core.model.processor.ModelInterpretationContext@702657cc - value "./logs/application.log" substituted for "${application.home:-.}/logs/application.log" +08:19:58,088 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property +08:19:58,131 |-INFO in ch.qos.logback.core.FileAppender[FILE] - File property is set to [./logs/application.log] +08:19:58,133 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [STDOUT] +08:19:58,133 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] +08:19:58,135 |-INFO in ch.qos.logback.core.model.processor.ImplicitModelHandler - Assuming default type [ch.qos.logback.classic.encoder.PatternLayoutEncoder] for [encoder] property +08:19:58,135 |-INFO in ch.qos.logback.core.ConsoleAppender[STDOUT] - BEWARE: Writing to the console can be very slow. Avoid logging to the +08:19:58,135 |-INFO in ch.qos.logback.core.ConsoleAppender[STDOUT] - console in production environments, especially in high volume systems. +08:19:58,135 |-INFO in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also https://logback.qos.ch/codes.html#slowConsole +08:19:58,135 |-INFO in ch.qos.logback.core.ConsoleAppender[STDOUT] - Enabling JANSI AnsiPrintStream for the console. +08:19:58,136 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - Failed to create AnsiPrintStream. Falling back on the default stream. java.lang.ClassNotFoundException: org.fusesource.jansi.AnsiConsole + at java.lang.ClassNotFoundException: org.fusesource.jansi.AnsiConsole + at at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) + at at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) + at at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) + at at ch.qos.logback.core.ConsoleAppender.wrapWithJansi(ConsoleAppender.java:107) + at at ch.qos.logback.core.ConsoleAppender.start(ConsoleAppender.java:97) + at at ch.qos.logback.core.model.processor.AppenderModelHandler.postHandle(AppenderModelHandler.java:84) + at at ch.qos.logback.core.model.processor.DefaultProcessor.secondPhaseTraverse(DefaultProcessor.java:257) + at at ch.qos.logback.core.model.processor.DefaultProcessor.secondPhaseTraverse(DefaultProcessor.java:253) + at at ch.qos.logback.core.model.processor.DefaultProcessor.traversalLoop(DefaultProcessor.java:90) + at at ch.qos.logback.core.model.processor.DefaultProcessor.process(DefaultProcessor.java:106) + at at ch.qos.logback.core.joran.GenericXMLConfigurator.processModel(GenericXMLConfigurator.java:222) + at at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:178) + at at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:123) + at at ch.qos.logback.core.joran.GenericXMLConfigurator.doConfigure(GenericXMLConfigurator.java:66) + at at ch.qos.logback.classic.util.DefaultJoranConfigurator.configureByResource(DefaultJoranConfigurator.java:68) + at at ch.qos.logback.classic.util.DefaultJoranConfigurator.configure(DefaultJoranConfigurator.java:35) + at at ch.qos.logback.classic.util.ContextInitializer.invokeConfigure(ContextInitializer.java:142) + at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:101) + at at ch.qos.logback.classic.util.ContextInitializer.autoConfig(ContextInitializer.java:67) + at at ch.qos.logback.classic.spi.LogbackServiceProvider.initializeLoggerContext(LogbackServiceProvider.java:51) + at at ch.qos.logback.classic.spi.LogbackServiceProvider.initialize(LogbackServiceProvider.java:44) + at at org.slf4j.LoggerFactory.bind(LoggerFactory.java:201) + at at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:187) + at at org.slf4j.LoggerFactory.getProvider(LoggerFactory.java:511) + at at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:497) + at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:446) + at at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472) + at at play.api.Configuration$.(Configuration.scala:196) + at at play.core.server.ProdServerStart$.readServerConfigSettings(ProdServerStart.scala:101) + at at play.core.server.ProdServerStart$.start(ProdServerStart.scala:41) + at at play.core.server.ProdServerStart$.main(ProdServerStart.scala:28) + at at play.core.server.ProdServerStart.main(ProdServerStart.scala) +08:19:58,136 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [ASYNCFILE] +08:19:58,136 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] +08:19:58,138 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [FILE] to ch.qos.logback.classic.AsyncAppender[ASYNCFILE] +08:19:58,138 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCFILE] - Attaching appender named [FILE] to AsyncAppender. +08:19:58,141 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCFILE] - Setting discardingThreshold to 51 +08:19:58,141 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [ASYNCSTDOUT] +08:19:58,141 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.classic.AsyncAppender] +08:19:58,141 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [STDOUT] to ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT] +08:19:58,141 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT] - Attaching appender named [STDOUT] to AsyncAppender. +08:19:58,141 |-INFO in ch.qos.logback.classic.AsyncAppender[ASYNCSTDOUT] - Setting discardingThreshold to 51 +08:19:58,142 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [play] to INFO +08:19:58,142 |-INFO in ch.qos.logback.classic.model.processor.LoggerModelHandler - Setting level of logger [application] to DEBUG +08:19:58,142 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to WARN +08:19:58,142 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [ASYNCFILE] to Logger[ROOT] +08:19:58,142 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [ASYNCSTDOUT] to Logger[ROOT] +08:19:58,143 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@2d1ef81a - End of configuration. +08:19:58,143 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@4c402120 - Registering current configuration as safe fallback point +08:19:58,143 |-INFO in ch.qos.logback.classic.util.ContextInitializer@43bc63a3 - ch.qos.logback.classic.util.DefaultJoranConfigurator.configure() call lasted 191 milliseconds. ExecutionStatus=DO_NOT_INVOKE_NEXT_IF_ANY + +2025-12-15 08:19:58 INFO p.a.http.HttpErrorHandlerExceptions Registering exception handler: guice-provision-exception-handler +2025-12-15 08:19:58 INFO play.api.db.DefaultDBApi Database [default] initialized +2025-12-15 08:19:58 INFO play.api.db.HikariCPConnectionPool Creating Pool for datasource 'default' +2025-12-15 08:19:59 INFO play.api.Play Application started (Prod) (no global state) +2025-12-15 08:20:00 INFO play.core.server.PekkoHttpServer Listening for HTTP on /[0:0:0:0:0:0:0:0]:5006 ``` @@ -332,7 +403,6 @@ README.md app app.json build.sbt -build.sc build_output.txt conf project