Files
lpt-be/Jenkinsfile
T

47 lines
1.3 KiB
Groovy

pipeline {
agent {
docker {
image 'maven:3.9.6-eclipse-temurin-17'
args '-v /root/.m2:/root/.m2'
}
}
environment {
IMAGE_NAME = 'LPT:0.0'
CONTAINER_NAME = 'LPT'
HOST_PORT = '8081'
CONTAINER_PORT = '8081'
}
stages {
stage('Build') {
steps {
sh 'mvn -B -DskipTests clean package'
}
}
stage('Build Docker Image') {
steps {
script {
// 切换到宿主环境调用 docker 命令
docker.image('docker:24.0.7-cli').inside('--entrypoint="" -v /var/run/docker.sock:/var/run/docker.sock -v $PWD:/workspace -w /workspace') {
sh '''
docker build -t $IMAGE_NAME .
'''
}
}
}
}
stage('Run Docker Container') {
steps {
script {
// 先尝试删除旧容器(如果存在)
sh '''
docker rm -f $CONTAINER_NAME || true
docker run -d --name $CONTAINER_NAME -p $HOST_PORT:$CONTAINER_PORT $IMAGE_NAME
'''
}
}
}
}
}