65 lines
2.2 KiB
Groovy
Raw Normal View History

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' : ''}"
2023-09-29 23:07:45 -05:00
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)