|
|
@@ -0,0 +1,28 @@
|
|
|
+# syntax=docker/dockerfile:1
|
|
|
+FROM oven/bun:debian AS deps
|
|
|
+WORKDIR /app
|
|
|
+COPY package.json bun.lockb* ./
|
|
|
+RUN bun install --frozen-lockfile
|
|
|
+
|
|
|
+FROM oven/bun:debian AS builder
|
|
|
+WORKDIR /app
|
|
|
+COPY --from=deps /app/node_modules ./node_modules
|
|
|
+COPY . .
|
|
|
+ENV NEXT_TELEMETRY_DISABLED=1
|
|
|
+ENV CI=true
|
|
|
+RUN bun run build
|
|
|
+
|
|
|
+FROM node:20-slim AS runner
|
|
|
+WORKDIR /app
|
|
|
+ENV NODE_ENV=production
|
|
|
+ENV PORT=8080
|
|
|
+EXPOSE 8080
|
|
|
+
|
|
|
+# 关键:确保复制了所有必要的文件,特别是 drizzle 文件夹
|
|
|
+COPY --from=builder /app/public ./public
|
|
|
+COPY --from=builder /app/.next ./.next
|
|
|
+COPY --from=builder /app/node_modules ./node_modules
|
|
|
+COPY --from=builder /app/package.json ./package.json
|
|
|
+COPY --from=builder /app/drizzle ./drizzle
|
|
|
+
|
|
|
+CMD ["node", "node_modules/.bin/next", "start"]
|