pipeline { agent any environment { APP_HOME = "/opt/go-dy" } stages { stage('Checkout') { steps { git url: 'http://47.95.203.241:3000/ReeseLin/golang-dy-back', branch: 'main', credentialsId: 'GITEA_CREDENTIAL_ID' } } stage('Build Binary') { steps { sh 'docker run --rm -v $APP_HOME:/app -w /app golang:1.22-alpine sh -c "go mod tidy && go build -o go-dy ."' } } stage('Build Docker Image') { steps { sh 'docker build -t go-dy:latest $APP_HOME' } } stage('Deploy') { steps { sh 'docker stop go-dy || true && docker rm go-dy || true && docker run -d --name go-dy -p 8090:18080 go-dy:latest' } } } }