in jenkins-pipeline-shared-libraries/vars/cloud.groovy [256:287]
void prepareForDockerMultiplatformBuild(List insecureRegistries = [], List mirrorRegistriesConfig = [], boolean debug = false) {
cleanDockerMultiplatformBuild(debug)
// For multiplatform build
sh 'docker run --rm --privileged --name binfmt docker.io/tonistiigi/binfmt --install all'
if (debug) { debugDockerMultiplatformBuild() }
String buildkitdtomlConfig = "debug = ${debug}\n"
insecureRegistries.each {
buildkitdtomlConfig += "${getBuildkitRegistryConfigStr(it, true)}"
}
mirrorRegistriesConfig.each { mirrorRegistryCfg ->
buildkitdtomlConfig += "[registry.\"${ mirrorRegistryCfg.name }\"]\n"
buildkitdtomlConfig += "mirrors = [${ mirrorRegistryCfg.mirrors.collect { "\"${it.url }\"" }.join(',')}]\n"
mirrorRegistryCfg.mirrors.each { mirror ->
buildkitdtomlConfig += "${getBuildkitRegistryConfigStr(mirror.url, mirror.insecure)}"
}
}
writeFile(file: 'buildkitd.toml', text: buildkitdtomlConfig)
if (debug) {
sh 'cat buildkitd.toml'
}
sh 'docker buildx create --name mybuilder --driver docker-container --driver-opt network=host --bootstrap --config ${WORKSPACE}/buildkitd.toml'
sh 'docker buildx use mybuilder'
if (debug) { debugDockerMultiplatformBuild() }
}