Loading

一个Jenkins流水线怎么同时打两个镜像

需求背景,当往生产环境打镜像时,需要同时打出x86和arm64的镜像。
主要脚本如下:

steps {
echo '生成镜像......'
script {
sh 'printenv'
updateGitlabCommitStatus name: '生成镜像', state: 'running'
dockerImage = docker.build("${registryCredential}/${registryName}-${env.C_ENV}😒{env.C_IMAGE_TAG}")
docker.withRegistry(registryURL, 'harbor-jenkins-user') {
dockerImage.push()
}
if (env.C_ENV == 'pro') {
dockerImage = docker.build("${registryCredential}/${registryName}-${env.C_ENV}😒{env.C_IMAGE_TAG}-arm64", "-f Dockerfile-arm64 .")
docker.withRegistry(registryURL, 'harbor-jenkins-user') {
dockerImage.push()
}
}
}
}

当然源码仓库的根目录应该有一个Dockerfile,还应该有一个叫做Dockerfile-arm64文件内容如下:

FROM harborHost:8081/library/java:8u291-k8s-arm64
ADD --chown=1000:1000 target/xxx.jar /var/k8s/xxx.jar

和x86所使用的Dockerfile主要区别就是基础镜像的不同,这里Dockerfile内容不再列举。

posted @ 2023-01-10 14:55  Jicing  阅读(250)  评论(0)    收藏  举报