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  阅读(233)  评论(0)    收藏  举报