Hendrik Richert 966cb175f7
feat(dev): Make repositories configurable for enterprise developers (#9230)
Co-authored-by: Hendrik Richert <hendrik.richert@swisscom.com>
Co-authored-by: david-leifker <114954101+david-leifker@users.noreply.github.com>
2023-11-28 14:52:11 -06:00

86 lines
2.9 KiB
Groovy

plugins {
id 'org.springframework.boot'
id 'java'
id 'com.palantir.docker'
}
apply from: "../../gradle/versioning/versioning.gradle"
ext {
docker_repo = 'datahub-mae-consumer'
}
dependencies {
implementation project(':metadata-service:factories')
implementation project(':metadata-jobs:mae-consumer')
// TODO: Extract PE consumer into separate pod.
implementation project(':metadata-jobs:pe-consumer')
implementation(externalDependency.springBootStarterWeb) {
exclude module: "spring-boot-starter-tomcat"
}
implementation externalDependency.springBootStarterJetty
implementation externalDependency.springKafka
implementation externalDependency.springBootAutoconfigure
implementation externalDependency.springActuator
implementation externalDependency.slf4jApi
implementation externalDependency.log4j2Api
compileOnly externalDependency.lombok
implementation externalDependency.logbackClassic
testImplementation project(':metadata-dao-impl:kafka-producer')
testImplementation externalDependency.springBootTest
testImplementation externalDependency.mockito
testImplementation externalDependency.testng
}
bootJar {
mainClass = 'com.linkedin.metadata.kafka.MaeConsumerApplication'
archiveFileName = "${project.name}.jar"
}
docker {
name "${docker_registry}/${docker_repo}:v${version}"
version "v${version}"
dockerfile file("${rootProject.projectDir}/docker/${docker_repo}/Dockerfile")
files bootJar.outputs.files
files fileTree(rootProject.projectDir) {
include '.dockerignore'
include 'docker/monitoring/*'
include "docker/${docker_repo}/*"
include 'metadata-models/src/main/resources/*'
}.exclude {
i -> (!i.file.name.endsWith(".dockerignore") && i.file.isHidden())
}
tag("Debug", "${docker_registry}/${docker_repo}:debug")
// platform('linux/arm64', 'linux/amd64')
buildx(true)
load(true)
push(false)
// Add build args if they are defined (needed for some CI or enterprise environments)
def dockerBuildArgs = [:]
if (project.hasProperty('alpineApkRepositoryUrl')) {
dockerBuildArgs.ALPINE_REPO_URL = project.getProperty('alpineApkRepositoryUrl')
}
if (project.hasProperty('githubMirrorUrl')) {
dockerBuildArgs.GITHUB_REPO_URL = project.getProperty('githubMirrorUrl')
}
if (project.hasProperty('mavenCentralRepositoryUrl')) {
dockerBuildArgs.MAVEN_CENTRAL_REPO_URL = project.getProperty('mavenCentralRepositoryUrl')
}
if (dockerBuildArgs.size() > 0) {
buildArgs(dockerBuildArgs)
}
}
tasks.getByPath(":metadata-jobs:mae-consumer-job:docker").dependsOn([bootJar])
task cleanLocalDockerImages {
doLast {
rootProject.ext.cleanLocalDockerImages(docker_registry, docker_repo, "${version}")
}
}
dockerClean.finalizedBy(cleanLocalDockerImages)