@@ -425,12 +425,12 @@ void addBuildDockerImageTask(Architecture architecture, DockerBase base) {
425425}
426426
427427void addBuildEssDockerImageTask (Architecture architecture ) {
428- DockerBase base = DockerBase . CLOUD_ESS
428+ DockerBase dockerBase = DockerBase . CLOUD_ESS
429429 String arch = architecture == Architecture . AARCH64 ? ' -aarch64' : ' '
430- String contextDir = " ${ project.buildDir} /docker-context/elasticsearch${ base .suffix} -${ VersionProperties.elasticsearch} -docker-build-context${ arch} "
430+ String contextDir = " ${ project.buildDir} /docker-context/elasticsearch${ dockerBase .suffix} -${ VersionProperties.elasticsearch} -docker-build-context${ arch} "
431431
432432 final TaskProvider<Sync > buildContextTask =
433- tasks. register(taskName(' build' , architecture, base , ' DockerContext' ), Sync ) {
433+ tasks. register(taskName(' build' , architecture, dockerBase , ' DockerContext' ), Sync ) {
434434 into contextDir
435435
436436 final Path projectDir = project. projectDir. toPath()
@@ -439,28 +439,52 @@ void addBuildEssDockerImageTask(Architecture architecture) {
439439 from configurations. allPlugins
440440 }
441441
442- from(projectDir. resolve(" src/docker/Dockerfile.cloud-ess" )) {
443- expand([
444- base_image : " elasticsearch${ DockerBase.CLOUD.suffix} :${ architecture.classifier} "
445- ])
442+ // If we're performing a release build, but `build.id` hasn't been set, we can
443+ // infer that we're not at the Docker building stage of the build, and therefore
444+ // we should skip the beats part of the build.
445+ String buildId = providers. systemProperty(' build.id' ). getOrNull()
446+ boolean includeBeats = VersionProperties . isElasticsearchSnapshot() == true || buildId != null || useDra
447+
448+ if (includeBeats) {
449+ from configurations. getByName(" filebeat_${ architecture.classifier} " )
450+ from configurations. getByName(" metricbeat_${ architecture.classifier} " )
451+ }
452+ // For some reason, the artifact name can differ depending on what repository we used.
453+ rename ~/ ((?:file|metric)beat)-.*\. tar\. gz$/ , " \$ 1-${ VersionProperties.elasticsearch} .tar.gz"
454+
455+ String baseSuffix = DockerBase . DEFAULT . suffix
456+ from(projectDir. resolve(" src/docker/Dockerfile.ess" )) {
457+ expand(
458+ [
459+ base_image : " elasticsearch${ baseSuffix} :${ architecture.classifier} " ,
460+ docker_base : " ${ dockerBase.name().toLowerCase()} " ,
461+ version : " ${ VersionProperties.elasticsearch} " ,
462+ retry : ShellRetry
463+ ]
464+ )
446465 filter SquashNewlinesFilter
447- rename ~/ Dockerfile\. cloud- ess$/ , ' Dockerfile'
466+ rename ~/ Dockerfile\. ess$/ , ' Dockerfile'
448467 }
449468 }
450469
451470 final TaskProvider<DockerBuildTask > buildDockerImageTask =
452- tasks. register(taskName(" build" , architecture, base , " DockerImage" ), DockerBuildTask ) {
471+ tasks. register(taskName(" build" , architecture, dockerBase , " DockerImage" ), DockerBuildTask ) {
453472
454- TaskProvider<DockerBuildTask > buildCloudTask = tasks. named(taskName(" build" , architecture, DockerBase . CLOUD , " DockerImage" ))
455- inputs. files(buildCloudTask)
473+ DockerBase base = DockerBase . DEFAULT
474+
475+ TaskProvider<DockerBuildTask > buildBaseTask = tasks. named(taskName(" build" , architecture, base, " DockerImage" ))
476+ inputs. files(buildBaseTask)
456477
457478 dockerContext. fileProvider(buildContextTask. map { it. getDestinationDir() })
458479
459480 noCache = buildParams. isCi()
460481 baseImages = []
461- tags = generateTags(base , architecture)
482+ tags = generateTags(dockerBase , architecture)
462483 platforms. add(architecture. dockerPlatform)
463- Provider<DockerSupportService > serviceProvider = GradleUtils . getBuildService(project. gradle. sharedServices, DockerSupportPlugin . DOCKER_SUPPORT_SERVICE_NAME )
484+ Provider<DockerSupportService > serviceProvider = GradleUtils . getBuildService(
485+ project. gradle. sharedServices,
486+ DockerSupportPlugin . DOCKER_SUPPORT_SERVICE_NAME
487+ )
464488 onlyIf(" $architecture supported" ) { serviceProvider. get(). isArchitectureSupported(architecture) }
465489
466490 }
0 commit comments