From 97bd2734bae96c04193c0c091dcd3d2b8f0cf448 Mon Sep 17 00:00:00 2001 From: caoyuchun <335003032@qq.com> Date: Fri, 16 Jan 2026 11:56:51 +0800 Subject: [PATCH] cyc --- Jenkinsfile | 69 ++++++++++++++++------------------------------ backend/Dockerfile | 2 +- 2 files changed, 25 insertions(+), 46 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 12806d0..0e0ef36 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -20,54 +20,33 @@ pipeline { stage('Build') { steps { - script { - // 定义构建命令(公共部分) - def buildCommands = ''' - echo "Node 版本: $(node --version)" - echo "NPM 版本: $(npm --version)" - echo "安装依赖..." - npm install - npm run install:all - echo "构建前端..." - npm run build --workspace=frontend - echo "构建后端..." - cd backend && npm run build && npm run prisma:generate && cd .. - ''' + echo '构建项目...' + sh ''' + # 检查 Node.js + if ! command -v node &> /dev/null; then + echo "错误: Node.js 未安装,请安装 Node.js 22+" + exit 1 + fi - // 尝试使用 Docker 构建,失败则回退到主机构建 - def useDocker = false - try { - def dockerCheck = sh( - script: 'command -v docker >/dev/null 2>&1 && docker --version', - returnStatus: true - ) - if (dockerCheck == 0) { - useDocker = true - } - } catch (Exception e) { - echo "Docker 不可用,使用主机构建" - } + echo "Node 版本: $(node --version)" + echo "NPM 版本: $(npm --version)" - if (useDocker) { - try { - docker.image("node:18").inside('-v /var/run/docker.sock:/var/run/docker.sock') { - sh buildCommands - } - } catch (Exception e) { - echo "Docker 构建失败,回退到主机构建: ${e.getMessage()}" - useDocker = false - } - } + # 安装依赖 + echo "安装依赖..." + npm install + npm run install:all - if (!useDocker) { - sh ''' - if ! command -v node &> /dev/null; then - echo "错误: Node.js 未安装,请安装 Node.js 18+" - exit 1 - fi - ''' + buildCommands - } - } + # 构建前端 + echo "构建前端..." + npm run build --workspace=frontend + + # 构建后端 + echo "构建后端..." + cd backend + npm run build + npm run prisma:generate + cd .. + ''' } } diff --git a/backend/Dockerfile b/backend/Dockerfile index 57c5bf3..6e49cbd 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18-alpine +FROM node:22-alpine # 安装 OpenSSL(Prisma 需要) # Alpine 3.19+ 使用 openssl3,旧版本使用 openssl1.1-compat