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