feat: 首次推送到Gitea - 完整项目代码 + 安全加固 + 知识库
This commit is contained in:
+7
-2
@@ -37,15 +37,17 @@ COPY --from=deps /app/node_modules ./node_modules
|
||||
COPY . .
|
||||
|
||||
# 跑 next build 生成 .next/
|
||||
# DATABASE_URL 在 build 时不需要(next 是 SSG/SSR-on-demand),但 prisma generate 需要
|
||||
# DATABASE_URL 在 build 时需要(next 预渲染静态页面时连接数据库)
|
||||
# 用 .env.example 当 placeholder 生成 prisma client
|
||||
# 同时注入 OPENAI_API_KEY / DEEPSEEK_API_KEY 占位值,避免 openai SDK v6+ 构造时抛错
|
||||
# (build 期不会真正调用 AI,仅为通过模块求值)
|
||||
ARG DATABASE_URL
|
||||
RUN if [ ! -f .env ]; then cp .env.example .env 2>/dev/null || echo "DATABASE_URL=placeholder" > .env; fi \
|
||||
&& export DATABASE_URL="${DATABASE_URL:-placeholder}" \
|
||||
&& export DEEPSEEK_API_KEY="${DEEPSEEK_API_KEY:-sk-build-placeholder}" \
|
||||
&& export OPENAI_API_KEY="${OPENAI_API_KEY:-sk-build-placeholder}" \
|
||||
&& npx prisma generate \
|
||||
&& DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" OPENAI_API_KEY="$OPENAI_API_KEY" npm run build
|
||||
&& DATABASE_URL="$DATABASE_URL" DEEPSEEK_API_KEY="$DEEPSEEK_API_KEY" OPENAI_API_KEY="$OPENAI_API_KEY" npm run build
|
||||
|
||||
# ---- 阶段 3: 运行 ----
|
||||
FROM node:20-alpine AS runner
|
||||
@@ -73,8 +75,11 @@ RUN addgroup -g 1001 -S nodejs && adduser -S nextjs -u 1001
|
||||
COPY --from=builder /app/public ./public
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next
|
||||
COPY --from=builder /app/node_modules ./node_modules
|
||||
# .prisma 目录交给 nextjs 用户(entrypoint 启动时会重新 prisma generate 同步 schema)
|
||||
RUN chown -R nextjs:nodejs /app/node_modules/.prisma
|
||||
COPY --from=builder /app/package.json ./package.json
|
||||
COPY --from=builder /app/prisma ./prisma
|
||||
COPY --from=builder /app/prisma.config.ts ./prisma.config.ts
|
||||
COPY --from=builder /app/scripts ./scripts
|
||||
# seed data files for volume auto-fill
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/data ./data-seed
|
||||
|
||||
Reference in New Issue
Block a user