启动项目后,无法使用
docker exec -it sb-repro [bash | sh]
连接到容器。错误:
OCI runtime exec failed: exec failed: unable to start container process: exec: "bash": executable file not found in $PATH: unknown
有可用的外壳吗?或者是否需要在here显式添加一些构建包?
为了构建容器镜像,您使用了这个特定的构建包:
buildpacks.set(listOf("gcr.io/paketo-buildpacks/java-native-image"))
id("org.graalvm.buildtools.native")
如果您查看 Gradle Spring Boot 插件文档,您会注意到使用构建工具会使插件使用
paketobuildpacks/builder-jammy-tiny:latest
而不是 paketobuildpacks/builder-jammy-base:latest
:
paketobuildpacks/builder-jammy-base:latest 或 paketobuildpacks/builder-jammy-tiny:latest 当应用 GraalVM Native Image 插件时。
并且为了使图像尺寸更小,
tiny
变体没有嵌入常见的Unix工具,例如bash
或sh
- 这使得构建的图像更加安全(更小的攻击面) - 但可调试性也较差.. .
我建议您使用
paketobuildpacks/builder-jammy-base:latest
基础映像进行调试,并使用 运行您的构建
./gradlew --builder paketobuildpacks/builder-jammy-base:latest bootBuildImage
或更新您的
build.gradle.kts
:
tasks.withType<BootBuildImage> {
builder.set("paketobuildpacks/builder-jammy-base:latest")
...
}