59 lines
1.5 KiB
Groovy
59 lines
1.5 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
APP_NAME = "go-dy"
|
|
IMAGE_NAME = "go-dy:latest"
|
|
WORKDIR = "/opt/go-dy"
|
|
DOCKER_REGISTRY = "" // 如果你需要推送到镜像仓库可以填
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout Code') {
|
|
steps {
|
|
git branch: 'main',
|
|
url: 'http://47.95.203.241:3000/ReeseLin/golang-dy-back.git',
|
|
credentialsId: '932fcb89-1c39-4005-b664-15e862f09e20'
|
|
}
|
|
}
|
|
|
|
stage('Build Binary') {
|
|
steps {
|
|
// 使用 golang 官方镜像构建
|
|
sh """
|
|
docker run --rm -v ${WORKDIR}:/app -w /app golang:1.22-alpine \
|
|
sh -c "go mod tidy && go build -o ${APP_NAME} ."
|
|
"""
|
|
}
|
|
}
|
|
|
|
stage('Build Docker Image') {
|
|
steps {
|
|
sh """
|
|
docker build -t ${IMAGE_NAME} ${WORKDIR}
|
|
"""
|
|
}
|
|
}
|
|
|
|
stage('Deploy') {
|
|
steps {
|
|
// 停掉旧容器,启动新容器
|
|
sh """
|
|
docker stop ${APP_NAME} || true
|
|
docker rm ${APP_NAME} || true
|
|
docker run -d --name ${APP_NAME} -p 8090:8090 ${IMAGE_NAME}
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
success {
|
|
echo "流水线执行成功,服务已更新!"
|
|
}
|
|
failure {
|
|
echo "流水线失败,请检查日志"
|
|
}
|
|
}
|
|
}
|