Skip to content

Commit df76ac8

Browse files
committed
Draft jib/native build
1 parent d74043c commit df76ac8

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", vers
8383
kmpNativeCoroutines = { id = "com.rickclephas.kmp.nativecoroutines", version.ref = "kmpNativeCoroutines" }
8484
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
8585
kotlinJvm = { id = "org.jetbrains.kotlin.jvm" }
86+
graalvm = { id = "org.graalvm.buildtools.native", version = "0.11.0" }
8687
shadowPlugin = { id = "com.gradleup.shadow", version.ref = "shadowPlugin" }
8788
jib = { id = "com.google.cloud.tools.jib", version.ref = "jib" }
8889

mcp-server/build.gradle.kts

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
alias(libs.plugins.kotlinx.serialization)
66
alias(libs.plugins.jib)
77
application
8-
id("org.graalvm.buildtools.native") version "0.11.0"
8+
alias(libs.plugins.graalvm)
99
}
1010

1111
dependencies {
@@ -37,22 +37,37 @@ graalvmNative {
3737
vendor.set(JvmVendorSpec.GRAAL_VM)
3838
nativeImageCapable.set(true)
3939
})
40+
buildArgs("--enable-url-protocols=http,https")
4041
}
4142
named("main") {
4243
imageName.set("climate-trace-mcp")
43-
mainClass.set("MainKt")
44+
mainClass.set("McpServerKt")
4445
}
4546
}
4647
}
4748

4849
jib {
49-
from.image = "docker.io/library/eclipse-temurin:21"
50+
from.image = "docker.io/library/alpine:3.22"
5051

5152
to {
5253
image = "gcr.io/climatetrace-mcp/climatetrace-mcp-server"
5354
}
5455
container {
5556
ports = listOf("8080")
56-
mainClass = "McpServerKt"
57+
entrypoint = listOf("/climate-trace-mcp")
5758
}
59+
extraDirectories {
60+
paths {
61+
path {
62+
// copies a single-file.xml
63+
setFrom("build/native/nativeCompile")
64+
into = "/"
65+
includes = listOf("climate-trace-mcp")
66+
}
67+
}
68+
}
69+
}
70+
71+
tasks.named("jib").configure {
72+
dependsOn(tasks.named("nativeCompile"))
5873
}

0 commit comments

Comments
 (0)