Jenkins部署项目发布镜像报错failed to load

2020-10-23  本文已影响0人  cherishpf

报错信息:

#9 [internal] load build context
#9 CANCELED
failed to solve: rpc error: code = Unknown desc = failed to load LLB: runtime execution on platform linux/arm64 not supported

解决方法:

构建镜像之前安装qemu-user-static
为了让在x86上可以运行arm64的docker镜像,这里需要安装qemu-user-static,过程如下:
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

在Jenkins Pipeline Script中的添加方式:

sh 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes'

 if( isMasterBranch || isHotFixBranch || isDevelopBranch ){

            stage("Deploy to image repo") {

                docker.withRegistry("https://registry.cn-shanghai.aliyuncs.com/", "aliyunDockerRegistry") {

                    def artifactoryVersion = getReleaseVersion()

                    def dockerTag

                    if( isMasterBranch || isHotFixBranch ) {

                        dockerTag = artifactoryVersion

                    } else if( isDevelopBranch ) {

                        dockerTag = getEdgeVersion();

                    }

                    println "---> Deploying the image with tag: " + dockerTag

                    deployedImageTag = "http://registry.cn-shanghai.aliyuncs.com/server/${service}:" + dockerTag

                    def latestImageTag = "http://registry.cn-shanghai.aliyuncs.com/server/${service}:latest"

                    sh 'docker run --rm --privileged multiarch/qemu-user-static --reset -p yes'

                    sh 'docker buildx create --name builder --use'

                    docker.build(deployedImageTag, "--rm --platform=linux/amd64,linux/arm64 --build-arg ARTIFACT_VERSION=${artifactoryVersion} . --push")

                    docker.build(latestImageTag, "--rm --platform=linux/amd64,linux/arm64 --build-arg ARTIFACT_VERSION=${artifactoryVersion} . --push")

                }

            }

        }

上一篇下一篇

猜你喜欢

热点阅读