Comments (2)
just a (arm64) note : spring-boot
Maven and Gradle plugins use, by default,
- the builders named
paketobuildpacks/builder-jammy-base:latest
orpaketobuildpacks/builder-jammy-tiny:latest
when native is activated - none of them support dual arch (yet) ❌ - the (composite )buildpacks named
paketobuildpacks/java:latest
or, when native is enabled,paketobuildpacks/java-native-image:latest
both of them are published as dual arch now ✅
To benefit from dual arch support, the users have to specify an alternative builder: paketobuildpacks/builder-jammy-buildpackless-tiny:latest
which is dual arch - otherwise, the arm64 path is not complete and won't allow users to use Java buildpacks arm64 flavor.
Since this builder is buildpackless
users have to manually specify the buildpacks they need.
Maven:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions> <!-- not necessary for arm64, but better take good habits now-->
<execution>
<id>process-aot</id>
<goals>
<goal>process-aot</goal>
</goals>
</execution>
</executions>
<configuration>
<image>
<env> <!-- not necessary for arm64, but better take good habits now-->
<BP_JVM_CDS_ENABLED>true</BP_JVM_CDS_ENABLED>
<BP_SPRING_AOT_ENABLED>true</BP_SPRING_AOT_ENABLED>
</env>
<buildpacks>
<buildpack>paketobuildpacks/java</buildpack>
</buildpacks>
<builder>paketobuildpacks/builder-jammy-buildpackless-tiny</builder>
</image>
</configuration>
</plugin>
Gradle:
plugins {
[...]
id("org.graalvm.buildtools.native") version "0.10.1" // not necessary for arm64, but better take good habits now
}
[...]
tasks.bootBuildImage {
builder.set("paketobuildpacks/builder-jammy-buildpackless-tiny")
buildpacks.add("gcr.io/paketo-buildpacks/java")
environment.put("BP_SPRING_AOT_ENABLED","true") // not necessary for arm64, but better take good habits now
environment.put("BP_JVM_CDS_ENABLED","true") // not necessary for arm64, but better take good habits now
}
There is no scheduled date when the default builders paketobuildpacks/builder-jammy-base:latest
and paketobuildpacks/builder-jammy-tiny:latest
will be published as dual arch(the best bet is to wait for the Ubuntu Noble based builders that will all be dual arch from day one and should arrive soon, but not for SB 3.3)
from spring-boot.
I have began to document the configuration customizations required to avoid early DB interactions cc @christophstrobl:
I am now working on adding CDS automated tests to https://github.com/spring-projects/spring-lifecycle-smoke-tests, so maybe the current CDS documentation can link https://github.com/spring-projects/spring-lifecycle-smoke-tests/blob/main/STATUS.adoc like what is done for CRaC.
from spring-boot.
Related Issues (20)
- Autoconfigure and QueryDSL HOT 3
- spring dynamic bean annotation not invoked HOT 1
- Update commons-compress from 1.25.0 to 1.26.2 HOT 1
- Lombok Unexpected Deletion Issue in **Spring Boot Project v3.2.5** HOT 2
- Deadlock when using Prometheus Exemplars HOT 7
- Deadlock when closing spring boot, swing ui application with close hook HOT 3
- Test Gradle plugin against Gradle 8.8
- Fix typos in method names and javadoc
- Improve consistency of documentation guidelines for packaging and running applications HOT 1
- Add configuration option for controlling the usage of PKCE when used with OAuth2 confidential clients HOT 3
- GraphQL observability produces a warning about possible memory leak and failing scope restoring
- RestClient Bean can not call API with method GET contains body HOT 2
- lombok is installed but not working HOT 4
- Remove unnecessary null check
- Bump jfrog/setup-jfrog-cli from 4.0.2 to 4.1.2
- Autoconfigured HttpMessageConverter for Kotlin throws Exception for Java Enum. HOT 1
- Group Kafka properties that configure the back-off policy
- hiii HOT 1
- rustclient
- WebSocket autoconfiguration issue with messageBrokerTaskScheduler in 3.3.0 version HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-boot.