代码拉取完成,页面将自动刷新
pipeline {
agent {
node {
label 'maven'
}
}
stages {
stage('代码拉取并Maven 编译') {
agent none
steps {
container('maven') {
git(url: 'https://gitee.com/hsqyz/HelloWorld.git', branch: 'main', changelog: true, poll: false)
sh '''echo \'项目结构如下:\'
ls
echo \'mvn clean package -Dmaven.test.skip=true start ...\'
mvn clean package -Dmaven.test.skip=true
echo \'mvn clean package -Dmaven.test.skip=true end ...\'
echo \'maven编译后的项目结构如下:\'
ls
echo \'target目录如下:\'
ls target/
echo \'当前所在目录:\'
pwd'''
}
}
}
stage('镜像制作') {
agent none
steps {
container('maven') {
sh '''# 通过 Dockerfile构建镜像
docker build -t hello-word:v1.0 .'''
}
}
}
stage('镜像推送') {
agent none
steps {
container('maven') {
withCredentials([usernamePassword(credentialsId : 'harbor-secret' ,passwordVariable : 'Harbor_PASSWD' ,usernameVariable : 'Harbor_USER' ,)]) {
sh '''#指定私有harbor
mkdir /etc/docker
ls /etc/docker/
touch /etc/docker/daemon.json
echo \'{ "live-restore": true,"insecure-registries":["$DOCKER_REGISTRY"] }\' > /etc/docker/daemon.json'''
sh '''echo "$Harbor_PASSWD" | docker login "$DOCKER_REGISTRY" -u "$Harbor_USER" --password-stdin
echo \'开始推送\'
docker tag hello-word:v1.0 $DOCKER_REGISTRY/$DOCKER_IMAGE_NAMESPACE/$APP_NAME:$APP_VERSION
docker push $DOCKER_REGISTRY/$DOCKER_IMAGE_NAMESPACE/$APP_NAME:$APP_VERSION'''
}
}
}
}
stage('发布') {
agent none
steps {
container('maven') {
withCredentials([kubeconfigContent(credentialsId : 'kubeconfig' ,variable : 'KUBECONFIG_CONFIG' ,)]) {
sh '''# 创建k8s凭证
mkdir -p ~/.kube/
echo "$KUBECONFIG_CONFIG" > ~/.kube/config'''
sh '''echo \'当前所在目录:\'
pwd
echo \'目录结构:\'
ls
# 开始部署
envsubst < deploy/deploy.yml | kubectl apply -f -'''
}
}
}
}
}
// 环境变量
environment {
// Docker 地址
DOCKER_REGISTRY = '8.213.219.103:30002'
// 镜像命名空间
DOCKER_IMAGE_NAMESPACE = 'e-go'
// 应用名称
APP_NAME = 'hello-word-2024'
// 应用版本
APP_VERSION = 'v1.0.1'
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。