diff --git a/src/dev/build/tasks/os_packages/docker_generator/run.ts b/src/dev/build/tasks/os_packages/docker_generator/run.ts index 5f2bc3de1c4ac..5a1ad6c337291 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/run.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/run.ts @@ -86,6 +86,7 @@ export async function runDockerGenerator( imageTag, dockerBuildDir, dockerTargetFilename, + dockerCrossCompile, baseOSImage, dockerBuildDate, ubi: flags.ubi, diff --git a/src/dev/build/tasks/os_packages/docker_generator/template_context.ts b/src/dev/build/tasks/os_packages/docker_generator/template_context.ts index 334a582bf7b96..7705b1d16d248 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/template_context.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/template_context.ts @@ -14,6 +14,7 @@ export interface TemplateContext { version: string; license: string; artifactsDir: string; + dockerCrossCompile: boolean; imageTag: string; dockerBuildDir: string; dockerTargetFilename: string; diff --git a/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts b/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts index 934f1b3c020e0..73159cee1f038 100644 --- a/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts +++ b/src/dev/build/tasks/os_packages/docker_generator/templates/build_docker_sh.template.ts @@ -13,12 +13,17 @@ import { TemplateContext } from '../template_context'; function generator({ imageTag, imageFlavor, + dockerCrossCompile, version, dockerTargetFilename, baseOSImage, architecture, }: TemplateContext) { const dockerArchitecture = architecture === 'aarch64' ? 'linux/arm64' : 'linux/amd64'; + const dockerTargetName = `${imageTag}${imageFlavor}:${version}`; + const dockerBuild = dockerCrossCompile + ? `docker buildx build --platform ${dockerArchitecture} -t ${dockerTargetName} -f Dockerfile . || exit 1;` + : `docker build -t ${dockerTargetName} -f Dockerfile . || exit 1;`; return dedent(` #!/usr/bin/env bash # @@ -55,7 +60,7 @@ function generator({ retry_docker_pull ${baseOSImage} echo "Building: kibana${imageFlavor}-docker"; \\ - docker buildx build --platform ${dockerArchitecture} -t ${imageTag}${imageFlavor}:${version} -f Dockerfile . || exit 1; + ${dockerBuild} docker save ${imageTag}${imageFlavor}:${version} | gzip -c > ${dockerTargetFilename}