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 = 3 // 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", ''), BASE_IMAGE: "${docker_registry}/datahub-ingestion-base"] // 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('dockerPrepare').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)