| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  | 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' | 
					
						
							| 
									
										
										
										
											2023-11-13 16:26:53 -06:00
										 |  |  |     docker_target = project.getProperties().getOrDefault("dockerTarget", "slim") | 
					
						
							|  |  |  |     docker_version = "${version}${docker_target == 'slim' ? '-slim' : ''}" | 
					
						
							| 
									
										
										
										
											2023-09-28 21:21:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-09-29 23:07:45 -05:00
										 |  |  |     revision = 2 // increment to trigger rebuild
 | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-17 00:10:17 -05:00
										 |  |  | dependencies { | 
					
						
							|  |  |  |     project(':docker:datahub-ingestion-base') | 
					
						
							|  |  |  |     project(':metadata-ingestion') | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  | docker { | 
					
						
							| 
									
										
										
										
											2023-11-13 16:26:53 -06:00
										 |  |  |     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" : ""}") | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  |     files fileTree(rootProject.projectDir) { | 
					
						
							| 
									
										
										
										
											2023-11-13 16:26:53 -06:00
										 |  |  |         include '.dockerignore' | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  |         include "docker/${docker_dir}/*" | 
					
						
							|  |  |  |         include "metadata-ingestion/**" | 
					
						
							| 
									
										
										
										
											2023-09-07 20:17:50 -05:00
										 |  |  |         include "metadata-ingestion-modules/**" | 
					
						
							| 
									
										
										
										
											2023-08-17 00:10:17 -05:00
										 |  |  |     }.exclude { | 
					
						
							| 
									
										
										
										
											2023-11-13 16:26:53 -06:00
										 |  |  |         i -> (!i.file.name.endsWith(".dockerignore") && i.file.isHidden()) | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-11-28 21:52:11 +01:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2023-12-18 14:06:17 -08:00
										 |  |  |     def dockerBuildArgs = [DOCKER_VERSION: version, RELEASE_VERSION: version.replace('-SNAPSHOT', '').replace('v', '').replace("-slim", ''), BASE_IMAGE: "${docker_registry}/datahub-ingestion-base"] | 
					
						
							| 
									
										
										
										
											2023-11-28 21:52:11 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // 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) | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-12-15 13:28:33 -06:00
										 |  |  | tasks.getByName('dockerPrepare').dependsOn(['build', | 
					
						
							|  |  |  |                                             ':docker:datahub-ingestion-base:docker', | 
					
						
							|  |  |  |                                             ':metadata-ingestion:codegen']) | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | task mkdirBuildDocker { | 
					
						
							|  |  |  |     doFirst { | 
					
						
							|  |  |  |         mkdir "${project.buildDir}/docker" | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | dockerClean.finalizedBy(mkdirBuildDocker) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | task cleanLocalDockerImages { | 
					
						
							|  |  |  |     doLast { | 
					
						
							| 
									
										
										
										
											2023-08-17 00:10:17 -05:00
										 |  |  |         rootProject.ext.cleanLocalDockerImages(docker_registry, docker_repo, "${version}") | 
					
						
							| 
									
										
										
										
											2023-03-20 18:06:35 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-11-28 21:52:11 +01:00
										 |  |  | dockerClean.finalizedBy(cleanLocalDockerImages) |