From 92d190a0817223887647774119d9f0b0cf63c682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E6=97=AD?= <> Date: Wed, 24 Jun 2026 16:48:07 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20prisma=20db=20push=20=E7=A7=BB=E5=88=B0?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E6=89=A7=E8=A1=8C=EF=BC=88=E4=BF=9D?= =?UTF-8?q?=E7=95=99=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 构建时执行会覆盖用户拷贝的数据库文件, 改为容器启动时执行,已有数据则跳过。 --- Dockerfile | 6 ++++-- start.sh | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 start.sh diff --git a/Dockerfile b/Dockerfile index 428ada8..c6b225b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,6 @@ RUN npm install -g pnpm@9 COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NEXT_TELEMETRY_DISABLED=1 -RUN pnpm exec prisma db push --skip-generate RUN pnpm build # ── 运行层 ── @@ -47,4 +46,7 @@ EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" -CMD ["node", "server.js"] +COPY start.sh ./start.sh +RUN chmod +x ./start.sh + +CMD ["sh", "./start.sh"] diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..ff0a202 --- /dev/null +++ b/start.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# 启动前确保数据库表存在 +node -e " +const { execSync } = require('child_process'); +try { + execSync('npx prisma db push --skip-generate', { stdio: 'inherit' }); +} catch (e) { + console.error('prisma db push failed:', e.message); +} +" +# 启动应用 +exec node server.js