使用https://start.spring.io/,我创建了支持本机映像的Sping Boot 3.x应用程序
我可以用gralde bootBuildImage
构建
运行docker run spring305gradlenativeimage:0.0.1-SNAPSHOT
如何使用自定义Dockerfile
或使用其他包扩展此docker镜像?
build.gradle:
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.5'
id 'io.spring.dependency-management' version '1.1.0'
id 'org.graalvm.buildtools.native' version '0.9.20'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-graphql'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework:spring-webflux'
testImplementation 'org.springframework.graphql:spring-graphql-test'
}
tasks.named('test') {
useJUnitPlatform()
}
P.S.我已经检查了https://graalvm.github.io/native-build-tools/latest/gradle-plugin.html和https://graalvm.github.io/native-build-tools/latest/javadocs/native-gradle-plugin/org/graalvm/buildtools/gradle/dsl/NativeImageOptions.html
1条答案
按热度按时间s2j5cfk01#
bootBuildImage
任务不是来自GraalVM,而是来自Sping Boot 。它的文档和选项可以在www.example.com上找到https://docs.spring.io/spring-boot/docs/current/gradle-plugin/reference/htmlsingle/#build-image。
因此,从我所看到的,从快速浏览,我猜你需要建立一个自己的形象,首先包含你想要的,然后配置,以使用的
bootBuildImage
任务。顺便说一句。你应该从删除过时的残余
io.spring.dependency-management
开始,并使用platform(...)
将其替换为Gradle内置的BOM支持。即使是该插件的维护者也建议这样做。这里是关于Sping Boot 和Docker的另一个链接:https://spring.io/guides/topicals/spring-boot-docker/