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