import org.springframework.boot.gradle.tasks.bundling.BootBuildImage plugins { application id("com.iqser.red.service.java-conventions") id("org.springframework.boot") version "3.1.5" id("io.spring.dependency-management") version "1.1.3" id("org.sonarqube") version "4.3.0.3225" id("io.freefair.lombok") version "8.2.2" } configurations { all { exclude(group = "commons-logging", module = "commons-logging") exclude(group = "org.springframework.boot", module = "spring-boot-starter-log4j2") exclude(group = "com.iqser.red.commons", module = "logging-commons") } } val springBootStarterVersion = "3.1.5" dependencies { implementation(project(":ocr-service-processor")) implementation(project(":ocr-service-api")) implementation("com.knecon.fforesight:tracing:0.5.0") implementation("org.springframework.cloud:spring-cloud-starter-openfeign:4.0.4") implementation("org.springframework.boot:spring-boot-starter-amqp:${springBootStarterVersion}") implementation("net.logstash.logback:logstash-logback-encoder:7.4") implementation("ch.qos.logback:logback-classic") testImplementation("org.springframework.boot:spring-boot-starter-test:${springBootStarterVersion}") testImplementation("com.iqser.red.commons:test-commons:2.1.0") testImplementation("org.springframework.amqp:spring-rabbit-test:3.0.2") } tasks.named("bootBuildImage") { environment.put("BPE_DELIM_JAVA_TOOL_OPTIONS", " ") environment.put("BPE_APPEND_JAVA_TOOL_OPTIONS", "-Dfile.encoding=UTF-8") environment.put("BPE_GS_LIB", "/layers/fagiani_apt/apt/usr/share/ghostscript/9.26/Resource/Init/") // set ghostscript lib path environment.put("BPE_FONTCONFIG_PATH", "/layers/fagiani_apt/apt/etc/fonts/") // set ghostscript fontconfig path var aptfile = layout.projectDirectory.file("src/main/resources/Aptfile").toString() bindings.add("${aptfile}:/workspace/Aptfile:ro") val vcpkgFile = layout.projectDirectory.file("src/main/resources/vcpkg.json").toString() bindings.add("${vcpkgFile}:/workspace/vcpkg.json:ro") val languagesFile = layout.projectDirectory.file("src/main/resources/tesseract_languages").toString() bindings.add("${languagesFile}:/workspace/tesseract_languages:ro") buildpacks.set( listOf( "ghcr.io/fagiani/buildpacks/fagiani_apt@sha256:6471c8c70f32b749e29f65ae562ac0339fecad26aa9217628c00a6c31f197dae", "ghcr.io/kschuettler/knecon-vcpkg@sha256:ba5e967b124de4865ff7e8f565684f752dd6e97b302e2dcf651283f6a19b98b9", "ghcr.io/kschuettler/knecon-tessdata@sha256:9062f728aa0340ac963bcdd6f5e740d683823a81d3f480db894da15bff72691a", "urn:cnb:builder:paketo-buildpacks/java" ) ) imageName.set("nexus.knecon.com:5001/ff/${project.name}") // must build image with same name always, otherwise the builder will not know which image to use as cache. DO NOT CHANGE! if (project.hasProperty("buildbootDockerHostNetwork")) { network.set("host") } docker { if (project.hasProperty("buildbootDockerHostNetwork")) { bindHostToBuilder.set(true) } verboseLogging.set(true) publishRegistry { username.set(providers.gradleProperty("mavenUser").getOrNull()) password.set(providers.gradleProperty("mavenPassword").getOrNull()) email.set(providers.gradleProperty("mavenEmail").getOrNull()) url.set("https://nexus.knecon.com:5001/") } val dockerTag = "nexus.knecon.com:5001/ff/${project.name}:${project.version}" tags.set(listOf(dockerTag)) } }