From 2931970f36eeea120fd4c51b2d2da22b1eb53d5b Mon Sep 17 00:00:00 2001 From: "DESKTOP-V763RJ7\\Administrator" <835606593@qq.com> Date: Thu, 1 Jan 2026 11:16:37 +0800 Subject: [PATCH] =?UTF-8?q?feat=20jenkins=20=E9=83=A8=E7=BD=B21?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/gateway/Jenkinsfile | 69 +++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/Server/gateway/Jenkinsfile b/Server/gateway/Jenkinsfile index bab53eb..439eca3 100644 --- a/Server/gateway/Jenkinsfile +++ b/Server/gateway/Jenkinsfile @@ -13,8 +13,7 @@ pipeline { // 部署目标服务器 SERVER_HOST = 'www.hlsq.asia' SERVER_USER = 'root' - REMOTE_DIR = '/opt/apps' - SSH_CREDENTIALS_ID = 'server-ssh-key' + SSH_CREDENTIALS_ID = '10e0830d-4d03-4879-9ee4-03a4c55513ad' // 基础信息 APP_NAME = 'server-gateway' @@ -94,38 +93,40 @@ pipeline { } } -// stage('Deploy to Server') { -// steps { -// script { -// echo "Deploying image: ${IMAGE_TAG} to ${env.SERVER_HOST}" -// -// sshagent (credentials: [env.SSH_CREDENTIALS_ID]) { -// sh """ -// ssh ${env.SERVER_USER}@${env.SERVER_HOST} << 'EOF' -// # 登录私有 registry(使用 Jenkins 注入的凭据) -// echo "$REGISTRY_PASS" | docker login ${env.REGISTRY} --username "$REGISTRY_USER" --password-stdin -// -// # 拉取最新镜像 -// docker pull ${IMAGE_TAG} -// -// # 停止并删除旧容器(如果存在) -// docker stop ${env.APP_NAME} 2>/dev/null || true -// docker rm ${env.APP_NAME} 2>/dev/null || true -// -// # 启动新容器(根据你的需求调整端口、环境变量等) -// docker run -d \\ -// --name ${env.APP_NAME} \\ -// --restart unless-stopped \\ -// -p 8080:8080 \\ -// ${IMAGE_TAG} -// -// # 可选:登出 registry -// docker logout ${env.REGISTRY} -// """ -// } -// } -// } -// } + stage('Deploy to Server') { + agent any + steps { + script { + withCredentials([ + usernamePassword( + credentialsId: env.REGISTRY_CREDENTIALS_ID, + usernameVariable: 'DOCKER_USER', + passwordVariable: 'DOCKER_PASS' + ) + ]) { + sshagent (credentials: [env.SSH_CREDENTIALS_ID]) { + sh """ + ssh -o StrictHostKeyChecking=no ${env.SERVER_USER}@${env.SERVER_HOST} << EOF + set -e + echo '${DOCKER_PASS}' | docker login --username '${DOCKER_USER}' --password-stdin ${env.REGISTRY_URL} + docker pull ${env.IMAGE_TAG} + docker stop ${env.APP_NAME} 2>/dev/null || true + docker rm ${env.APP_NAME} 2>/dev/null || true + docker run -d \\ + --name ${env.APP_NAME} \\ + --restart unless-stopped \\ + -p 8500-8504:8500-8504 \\ + --env XH_G_ENV=prod \\ + -v /root/server/logs/gateway_log/:/app/logs \\ + ${env.IMAGE_TAG} + docker logout ${env.REGISTRY_URL} + EOF + """ + } + } + } + } + } } post {