refactor: 彻底移除 docker compose,改用纯 docker 构建+重启部署
Build and Deploy / build (push) Successful in 12s
Build and Deploy / deploy (push) Successful in 26s

This commit is contained in:
cheney
2026-09-01 10:27:11 +08:00
parent e11814048c
commit a5c5d24083
7 changed files with 53 additions and 83 deletions
Vendored
+6 -24
View File
@@ -3,7 +3,6 @@ pipeline {
environment {
IMAGE_NAME = 'awesome-index'
CONTAINER_NAME = 'awesome'
DEPLOY_PATH = '/app/awesome'
SSH_HOST = '114.134.187.170'
SSH_USER = 'root'
@@ -13,9 +12,8 @@ pipeline {
stage('Build') {
steps {
script {
echo "Building Docker image ${IMAGE_NAME}:${BUILD_NUMBER}"
sh "docker build -t ${IMAGE_NAME}:${BUILD_NUMBER} ."
sh "docker tag ${IMAGE_NAME}:${BUILD_NUMBER} ${IMAGE_NAME}:latest"
echo "Building Docker image ${IMAGE_NAME}:latest"
sh "docker build -t ${IMAGE_NAME}:latest ."
}
}
}
@@ -29,28 +27,12 @@ pipeline {
// 创建部署目录
sh "sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${remote} 'mkdir -p ${DEPLOY_PATH}/data ${DEPLOY_PATH}/logs'"
// 复制必要文件
sh "sshpass -p '${SSH_PASS}' scp -o StrictHostKeyChecking=no docker-compose.yml ${remote}:${DEPLOY_PATH}/"
sh "sshpass -p '${SSH_PASS}' scp -o StrictHostKeyChecking=no .env.example ${remote}:${DEPLOY_PATH}/.env"
// 上传脚本(构建机 = 部署机,镜像已在服务器上,无需传输镜像)
sh "sshpass -p '${SSH_PASS}' scp -o StrictHostKeyChecking=no .env.example ${remote}:${DEPLOY_PATH}/.env.example"
sh "sshpass -p '${SSH_PASS}' scp -o StrictHostKeyChecking=no start.sh ${remote}:${DEPLOY_PATH}/"
// 导入镜像
sh "docker save ${IMAGE_NAME}:latest | gzip > ${IMAGE_NAME}.tar.gz"
sh "sshpass -p '${SSH_PASS}' scp -o StrictHostKeyChecking=no ${IMAGE_NAME}.tar.gz ${remote}:${DEPLOY_PATH}/"
// 在服务器上加载并重启
sh """
sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${remote} '
cd ${DEPLOY_PATH} &&
gunzip -c ${IMAGE_NAME}.tar.gz | docker load &&
rm -f ${IMAGE_NAME}.tar.gz &&
docker compose down --remove-orphans &&
docker compose up -d
'
"""
// 清理本地
sh "rm -f ${IMAGE_NAME}.tar.gz"
// 在服务器上重启容器
sh "sshpass -p '${SSH_PASS}' ssh -o StrictHostKeyChecking=no ${remote} 'cd ${DEPLOY_PATH} && chmod +x start.sh && bash start.sh'"
}
}
}