mirror of
https://github.com/datahub-project/datahub.git
synced 2025-06-27 05:03:31 +00:00

Co-authored-by: Hendrik Richert <hendrik.richert@swisscom.com> Co-authored-by: david-leifker <114954101+david-leifker@users.noreply.github.com>
65 lines
2.2 KiB
Groovy
65 lines
2.2 KiB
Groovy
plugins {
|
|
id 'com.palantir.docker'
|
|
id 'java' // required for versioning
|
|
}
|
|
|
|
apply from: "../../gradle/versioning/versioning.gradle"
|
|
|
|
ext {
|
|
docker_registry = rootProject.ext.docker_registry == 'linkedin' ? 'acryldata' : docker_registry
|
|
docker_repo = 'datahub-ingestion'
|
|
docker_dir = 'datahub-ingestion'
|
|
docker_target = project.getProperties().getOrDefault("dockerTarget", "slim")
|
|
docker_version = "${version}${docker_target == 'slim' ? '-slim' : ''}"
|
|
|
|
revision = 2 // increment to trigger rebuild
|
|
}
|
|
|
|
dependencies {
|
|
project(':docker:datahub-ingestion-base')
|
|
project(':metadata-ingestion')
|
|
}
|
|
|
|
docker {
|
|
name "${docker_registry}/${docker_repo}:v${docker_version}"
|
|
version "v${docker_version}"
|
|
dockerfile file("${rootProject.projectDir}/docker/${docker_dir}/Dockerfile${docker_target == "slim" ? "-slim-only" : ""}")
|
|
files fileTree(rootProject.projectDir) {
|
|
include '.dockerignore'
|
|
include "docker/${docker_dir}/*"
|
|
include "metadata-ingestion/**"
|
|
include "metadata-ingestion-modules/**"
|
|
}.exclude {
|
|
i -> (!i.file.name.endsWith(".dockerignore") && i.file.isHidden())
|
|
}
|
|
|
|
def dockerBuildArgs = [DOCKER_VERSION: version, RELEASE_VERSION: version.replace('-SNAPSHOT', '').replace('v', '').replace("-slim", '')]
|
|
|
|
// Add build args if they are defined (needed for some CI or enterprise environments)
|
|
if (project.hasProperty('pipMirrorUrl')) {
|
|
dockerBuildArgs.PIP_MIRROR_URL = project.getProperty('pipMirrorUrl')
|
|
}
|
|
if (project.hasProperty('debianAptRepositoryUrl')) {
|
|
dockerBuildArgs.DEBIAN_REPO_URL = project.getProperty('debianAptRepositoryUrl')
|
|
}
|
|
|
|
buildArgs(dockerBuildArgs)
|
|
}
|
|
tasks.getByName('docker').dependsOn(['build',
|
|
':docker:datahub-ingestion-base:docker',
|
|
':metadata-ingestion:codegen'])
|
|
|
|
task mkdirBuildDocker {
|
|
doFirst {
|
|
mkdir "${project.buildDir}/docker"
|
|
}
|
|
}
|
|
dockerClean.finalizedBy(mkdirBuildDocker)
|
|
|
|
task cleanLocalDockerImages {
|
|
doLast {
|
|
rootProject.ext.cleanLocalDockerImages(docker_registry, docker_repo, "${version}")
|
|
}
|
|
}
|
|
dockerClean.finalizedBy(cleanLocalDockerImages)
|