|
|
@@ -2,13 +2,8 @@ pipeline {
|
|
|
agent any
|
|
|
|
|
|
environment {
|
|
|
- // 部署目标
|
|
|
- DEPLOY_HOST = '120.26.186.130'
|
|
|
- DEPLOY_PATH = '/docker/middleware/nginx/html/alien_website/'
|
|
|
- // Jenkins 凭据 ID(SSH 私钥,需在 Jenkins 中预先配置)
|
|
|
- SSH_CREDENTIALS_ID = 'alien-website-deploy-ssh'
|
|
|
- // SSH 登录用户(按服务器实际用户修改)
|
|
|
- DEPLOY_USER = 'root'
|
|
|
+ // Jenkins 容器内路径(docker-compose 已挂载 ./nginx/html:/web_deploy)
|
|
|
+ DEPLOY_PATH = '/web_deploy/alien_website/'
|
|
|
NODE_VERSION = '20'
|
|
|
}
|
|
|
|
|
|
@@ -50,44 +45,34 @@ pipeline {
|
|
|
|
|
|
stage('Deploy') {
|
|
|
steps {
|
|
|
- withCredentials([sshUserPrivateKey(
|
|
|
- credentialsId: env.SSH_CREDENTIALS_ID,
|
|
|
- keyFileVariable: 'SSH_KEY',
|
|
|
- usernameVariable: 'SSH_USER'
|
|
|
- )]) {
|
|
|
- sh '''
|
|
|
- set -e
|
|
|
-
|
|
|
- if [ ! -d dist ]; then
|
|
|
- echo "错误: dist 目录不存在,构建可能失败"
|
|
|
- exit 1
|
|
|
- fi
|
|
|
+ sh '''
|
|
|
+ set -e
|
|
|
|
|
|
- chmod 600 "$SSH_KEY"
|
|
|
- SSH_OPTS="-i $SSH_KEY -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
|
|
|
+ if [ ! -d dist ]; then
|
|
|
+ echo "错误: dist 目录不存在,构建可能失败"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
|
|
|
- echo "开始部署到 ${SSH_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}"
|
|
|
+ if [ ! -d "${DEPLOY_PATH}" ] && [ ! -d /web_deploy ]; then
|
|
|
+ echo "错误: /web_deploy 未挂载,请检查 docker-compose 中 jenkins volumes 配置"
|
|
|
+ echo " - ./nginx/html:/web_deploy"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
|
|
|
- # 确保目标目录存在
|
|
|
- ssh $SSH_OPTS ${SSH_USER}@${DEPLOY_HOST} \
|
|
|
- "mkdir -p ${DEPLOY_PATH}"
|
|
|
+ echo "开始本地部署到 ${DEPLOY_PATH}"
|
|
|
|
|
|
- # 将 dist 目录内容同步到网站根目录(不含 dist 文件夹本身)
|
|
|
- rsync -avz --delete \
|
|
|
- -e "ssh $SSH_OPTS" \
|
|
|
- dist/ \
|
|
|
- ${SSH_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}
|
|
|
+ mkdir -p "${DEPLOY_PATH}"
|
|
|
+ rsync -av --delete dist/ "${DEPLOY_PATH}/"
|
|
|
|
|
|
- echo "部署完成"
|
|
|
- '''
|
|
|
- }
|
|
|
+ echo "部署完成"
|
|
|
+ '''
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
post {
|
|
|
success {
|
|
|
- echo "网站已成功部署至 ${DEPLOY_HOST}:${DEPLOY_PATH}"
|
|
|
+ echo "网站已成功部署至 ${DEPLOY_PATH}"
|
|
|
}
|
|
|
failure {
|
|
|
echo '部署失败,请查看上方日志'
|