feat: 从 SQLite 切换到 PostgreSQL
- Prisma provider 改为 postgresql - docker-compose 新增 postgres 服务(带健康检查) - Dockerfile 移除 sqlite3/template.db,改用 npm install prisma 做运行时 schema 同步 - docker-entrypoint.sh 简化为 prisma db push + node server.js
This commit is contained in:
+3
-7
@@ -17,34 +17,30 @@ COPY . .
|
||||
ARG NEXT_PUBLIC_AMAP_API_KEY
|
||||
ENV NEXT_PUBLIC_AMAP_API_KEY=${NEXT_PUBLIC_AMAP_API_KEY}
|
||||
RUN npx prisma generate
|
||||
ENV DATABASE_URL="file:./template.db"
|
||||
RUN npx prisma db push
|
||||
RUN npm run build
|
||||
|
||||
# --- Production ---
|
||||
FROM base AS runner
|
||||
WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
RUN apk add --no-cache sqlite
|
||||
RUN addgroup --system --gid 1001 nodejs
|
||||
RUN adduser --system --uid 1001 nextjs
|
||||
|
||||
COPY --from=builder /app/public ./public
|
||||
COPY --from=builder /app/prisma ./prisma
|
||||
COPY --from=builder /app/prisma/template.db ./template.db
|
||||
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
||||
|
||||
# Prisma CLI for automatic schema migration on startup
|
||||
RUN npm install prisma --no-save
|
||||
|
||||
COPY docker-entrypoint.sh ./
|
||||
RUN chmod +x docker-entrypoint.sh
|
||||
|
||||
RUN mkdir -p /app/data && chown nextjs:nodejs /app/data
|
||||
|
||||
USER nextjs
|
||||
EXPOSE 3000
|
||||
ENV PORT=3000
|
||||
ENV HOSTNAME="0.0.0.0"
|
||||
ENV DATABASE_URL="file:/app/data/prod.db"
|
||||
|
||||
CMD ["./docker-entrypoint.sh"]
|
||||
|
||||
Reference in New Issue
Block a user