feat: 首次推送到Gitea - 完整项目代码 + 安全加固 + 知识库

This commit is contained in:
ZhuiGuangAI Dev
2026-10-02 18:52:49 +08:00
parent b44601bb66
commit 8205ae709c
1185 changed files with 49841 additions and 12802 deletions
+7 -2
View File
@@ -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