pipeline { agent any environment { // 服务器信息 REMOTE_HOST = "172.16.0.21" REMOTE_USER = "root" PROJECT_NAME = "tvs-service" // Docker 镜像信息 DOCKER_REGISTRY = "172.16.0.21" GATEWAY_IMAGE = "ccag-cloud-gateway" SYSTEM_IMAGE = "ccag-system-cloud-start" // 代码目录 MODULE_PATH_GATEWAY = "ccag-server-cloud/ccag-cloud-gateway" MODULE_PATH_SYSTEM = "ccag-server-cloud/ccag-system-cloud-start" } stages { stage('拉取代码') { steps { git branch: 'master', credentialsId: 'git-credentials-id', url: 'git@172.16.0.76:firstarr/tvs/tvs-service.git' } } stage('编译 & 打包') { steps { script { sh "mvn clean install -DskipTests -f ../ccag-module-system/pom.xml" sh "mvn clean install -DskipTests -pl ccag-tvs-api" sh "mvn clean package -DskipTests -pl ${MODULE_PATH_GATEWAY},${MODULE_PATH_SYSTEM} -am" } } } stage('构建 Docker 镜像') { steps { script { sh """ docker build -t ${DOCKER_REGISTRY}/${GATEWAY_IMAGE}:latest -f ${MODULE_PATH_GATEWAY}/Dockerfile ${MODULE_PATH_GATEWAY} docker build -t ${DOCKER_REGISTRY}/${SYSTEM_IMAGE}:latest -f ${MODULE_PATH_SYSTEM}/Dockerfile ${MODULE_PATH_SYSTEM} """ } } } stage('推送 Docker 镜像') { steps { script { sh """ docker login -u your-docker-username -p your-docker-password ${DOCKER_REGISTRY} docker push ${DOCKER_REGISTRY}/${GATEWAY_IMAGE}:latest docker push ${DOCKER_REGISTRY}/${SYSTEM_IMAGE}:latest """ } } } stage('远程部署') { steps { script { sshagent(['ssh-credentials-id']) { sh """ ssh ${REMOTE_USER}@${REMOTE_HOST} 'bash -s' < deploy.sh """ } } } } } }