gradle Sping Boot 3.x的自定义Dockerfile、基础镜像或docker镜像扩展

rwqw0loc  于 2023-04-21  发布在  Docker
关注(0)|答案(1)|浏览(201)

使用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.htmlhttps://graalvm.github.io/native-build-tools/latest/javadocs/native-gradle-plugin/org/graalvm/buildtools/gradle/dsl/NativeImageOptions.html

s2j5cfk0

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/

相关问题