k8s学习(9)--整合阿里云镜像仓库
阿里云个人镜像仓库是免费使用,直接通过支付宝登录阿里云,产品->弹性计算->容器镜像服务创建镜像仓库选择公开,所有人都能下载选择本地仓库点进来以后,就会有操作指南
·
阿里云个人镜像仓库是免费使用,直接通过支付宝登录阿里云,产品->弹性计算->容器镜像服务
- 创建镜像仓库
选择公开,所有人都能下载
选择本地仓库
点进来以后,就会有操作指南
- 编写jenkinsfile
这里面需要创建一个新的凭证aliyun-hub-id,即阿里云登录用户名和密码,以及配置REGISTRY和NAMESPACE
pipeline {
agent {
node {
label 'maven'
}
}
stages {
stage('拉取代码') {
steps {
git(credentialsId: 'gitee-id', url: 'https://gitee.com/yuwengoku/security.git', branch: 'master', changelog: true, poll: false)
container('maven') {
sh 'mvn clean install -Dmaven.test.skip=true -gs `pwd`/mvn-settings.xml '
}
}
}
stage('sonar代码质量分析') {
steps {
container('maven') {
withCredentials([string(credentialsId: "$SONAR_CREDENTIAL_ID", variable: 'SONAR_TOKEN')]) {
withSonarQubeEnv('sonar') {
sh "mvn sonar:sonar -gs `pwd`/mvn-settings.xml -Dsonar.branch=$BRANCH_NAME -Dsonar.login=$SONAR_TOKEN"
}
}
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate true
}
}
}
}
stage('构建镜像并推送') {
steps {
container('maven') {
sh 'mvn -Dmaven.test.skip=true -gs `pwd`/mvn-settings.xml clean package'
sh 'cd $PROJECT_NAME && docker build --no-cache -f Dockerfile -t $REGISTRY/$NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION .'
withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$DOCKER_CREDENTIAL_ID" ,)]) {
sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin'
sh 'docker push $REGISTRY/$NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION'
}
}
}
}
stage('部署到开发环境') {
steps {
input(id: "deploy-to-dev-$PROJECT_NAME", message: "是否将[$PROJECT_NAME]部署到集群中?", ok: "部署")
kubernetesDeploy(configs: "$PROJECT_NAME/deploy/**", enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
}
}
}
environment {
DOCKER_CREDENTIAL_ID = 'aliyun-hub-id'
GITEE_CREDENTIAL_ID = 'gitee-id'
KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
NAMESPACE = 'yuwen4wu'
GITEE_ACCOUNT = 'yuwengoku'
SONAR_CREDENTIAL_ID = 'sonar-qube'
BRANCH_NAME = 'master'
}
parameters {
string(name: 'PROJECT_VERSION', defaultValue: 'v0.0Beta', description: '项目版本')
string(name: 'PROJECT_NAME', defaultValue: '', description: '项目名称')
}
}
- 创建流水线
这里选择一个代码仓库作为pipeline代码源,也就是选择一个jenkins file
这里填写jenkinsfile目录
创建好以后,会直接让你扫描分支
选分支,输入两个参数和名称,就开始执行了
成功
查看阿里云仓库镜像
更多推荐
已为社区贡献13条内容
所有评论(0)