• DevOps
  • devops 流水线自定义podTemplate(基础base模板加入ubuntu容器),容器内docker build报错

操作系统信息
例如:虚拟机/物理机,Centos7.5/Ubuntu18.04,4C/8G

Kubernetes版本信息
Client Version: version.Info{Major:“1”, Minor:“19”, GitVersion:“v1.19.8”, GitCommit:“fd5d41537aee486160ad9b5356a9d82363273721”, GitTreeState:“clean”, BuildDate:“2021-02-17T12:41:51Z”, GoVersion:“go1.15.8”, Compiler:“gc”, Platform:“linux/amd64”}

Server Version: version.Info{Major:“1”, Minor:“19”, GitVersion:“v1.19.8”, GitCommit:“fd5d41537aee486160ad9b5356a9d82363273721”, GitTreeState:“clean”, BuildDate:“2021-02-17T12:33:08Z”, GoVersion:“go1.15.8”, Compiler:“gc”, Platform:“linux/amd64”}

容器运行时
Client: Docker Engine - Community

Version: 20.10.7

API version: 1.41

Go version: go1.13.15

Git commit: f0df350

Built: Wed Jun 2 11:58:10 2021

OS/Arch: linux/amd64

Context: default

Experimental: true

Server: Docker Engine - Community

Engine:

Version: 20.10.7

API version: 1.41 (minimum version 1.12)

Go version: go1.13.15

Git commit: b0f5bc3

Built: Wed Jun 2 11:56:35 2021

OS/Arch: linux/amd64

Experimental: false

containerd:

Version: 1.4.6

GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d

runc:

Version: 1.0.0-rc95

GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7

docker-init:

Version: 0.19.0

GitCommit: de40ad0

KubeSphere版本信息
v3.2.1

问题是什么

流水线:

#!groovy

/*

   该Jenkinsfile作用: 构建aosp7 docker镜像,并推送到harbor (用于后续编译安卓源码)

   参考:

   https://github.com/jenkinsci/kubernetes-plugin/blob/master/README_zh.md

   https://www.jenkins.io/zh/blog/2018/09/14/kubernetes-and-secret-agents/

*/

/*

   自定义podTemplate:

   1\.继承ks提供的base podTemplate

   2\.添加ubuntu containerTemplate

*/

podTemplate(label: ‘myAgentPod’, inheritFrom: ‘base’, containers: [

    containerTemplate(name: 'my-ubuntu', image: 'ubuntu', command: 'cat', ttyEnabled: true)

]) {

node('myAgentPod') {

    stage("CheckOut") {

        checkout(scm)

    }

    stage("Build") {

        container('my-ubuntu') {

            buildPush()

        }

    }

}

}

def buildPush() {

String appName = 'aosp7'

String harborProject = 'lyhtest'

String branchName = "${BRANCH_NAME}"

String imageName = getImageName(harborProject, appName, replaceBranchName(branchName))

env.IMAGE_NAME = imageName

sh "ls -al"

sh "pwd"

sh "export BRANCH_NAME=${BRANCH_NAME}"

sh "export SVN_URL=${env.SVN_URL}"

sh "export SVN_REVISION=${env.SVN_REVISION}"

sh "cd docker"

sh "ls -al"

sh "pwd"

sh "docker build "+' --build-arg BRANCH_NAME=${BRANCH_NAME} '+". -t ${imageName} "

withCredentials([usernamePassword(credentialsId: "${getHarborToken()}", passwordVariable: 'HARBOR_PASSWORD', usernameVariable: 'HARBOR_USERNAME')]) {

    sh "echo ${HARBOR_PASSWORD} | docker login ${getRegistry()} -u ${HARBOR_USERNAME} --password-stdin"

    sh "docker push ${imageName}"

    sh "docker rmi  ${imageName} -f"

}

}

def String getRegistry(){

return "${env.REGISTRY_IP}"

}

def String getHarborToken(){

return "我的token(脱敏)";

}

def String getImageName(String harborProject, String appName, String branchName){

return "${getRegistry()}/${harborProject}/${appName}:${branchName}-${BUILD_NUMBER}"

}

def replaceBranchName(String branchName){

return branchName.replace("/","-")

}

1 个月 后
1 个月 后