Carter
02/13/2024, 9:28 PMColton Idle
02/14/2024, 12:14 AMColton Idle
02/14/2024, 12:14 AMColton Idle
02/14/2024, 12:18 AMCarter
02/14/2024, 12:25 AMColton Idle
02/14/2024, 12:26 AMColton Idle
02/14/2024, 12:26 AMCarter
02/14/2024, 12:29 AMCarter
02/14/2024, 12:31 AMval createDockerfile = register("createDockerfile") {
val javaVersion = libs.versions.java.target.get()
val isDockerMinificationEnabled = project.property(“IS_DOCKER_MINIFICATION_ENABLED").toString().toBoolean()
inputs.property("javaVersion", javaVersion)
inputs.property("isDockerMinificationEnabled", isDockerMinificationEnabled)
if (isJavaMinificationEnabled) {
dependsOn(proguardJar)
inputs.files(proguardJar)
} else {
dependsOn(fatJar)
inputs.files(fatJar)
}
val dockerFile = File(dockerDir, "Dockerfile")
val jarToDeploy = File(dockerDir, "app.jar")
outputs.files(dockerFile, jarToDeploy)
doLast {
inputs.files.first { it.name.endsWith(".jar") }.copyTo(jarToDeploy, overwrite = true)
val dockerFileContents = buildString {
appendLine("FROM eclipse-temurin:${javaVersion}-alpine AS build")
appendLine("COPY ${jarToDeploy.name} /app.jar")
if (isDockerMinificationEnabled) {
appendLine("RUN jdeps --ignore-missing-deps -q --multi-release $javaVersion --print-module-deps app.jar > jdeps.txt")
appendLine("RUN jlink --verbose --compress 2 --strip-java-debug-attributes --no-header-files --no-man-pages --output \"jre_optimized\" --add-modules \$(cat jdeps.txt),<http://jdk.crypto.ec|jdk.crypto.ec>,jdk.crypto.cryptoki,java.instrument")
appendLine("FROM alpine:latest")
appendLine("COPY --from=build /jre_optimized /opt/java/jre")
appendLine("COPY --from=build /app.jar /app.jar")
}
appendLine("EXPOSE 8080:8080")
val javaBin = if (isDockerMinificationEnabled) "/opt/java/jre/bin/java" else "java"
appendLine("ENTRYPOINT [\"$javaBin\", \"-jar\", \"/app.jar\"]")
}
dockerFile.writeText(dockerFileContents)
}
}
Carter
02/14/2024, 12:32 AMCarter
02/14/2024, 12:34 AMCherrio LLC
02/14/2024, 6:59 PMJoe
02/14/2024, 10:26 PMColton Idle
02/15/2024, 12:03 AMCherrio LLC
02/15/2024, 7:56 AMCherrio LLC
02/15/2024, 7:57 AMColton Idle
02/15/2024, 4:46 PMJoe
02/15/2024, 5:24 PMColton Idle
02/15/2024, 5:33 PM