Spaces:
Sleeping
Sleeping
Update Dockerfile
Browse files- Dockerfile +20 -3
Dockerfile
CHANGED
|
@@ -1,22 +1,39 @@
|
|
|
|
|
| 1 |
FROM node:20-alpine AS builder
|
| 2 |
WORKDIR /app
|
|
|
|
|
|
|
| 3 |
COPY package.json package-lock.json ./
|
|
|
|
| 4 |
RUN npm install
|
|
|
|
|
|
|
| 5 |
COPY . .
|
|
|
|
|
|
|
|
|
|
| 6 |
RUN npm run build
|
| 7 |
|
|
|
|
| 8 |
FROM node:20-alpine AS runner
|
| 9 |
WORKDIR /app
|
|
|
|
|
|
|
| 10 |
ENV NODE_ENV production
|
| 11 |
|
|
|
|
|
|
|
|
|
|
| 12 |
# Hugging Face default port 7860 use karta hai
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
COPY --from=builder /app/next.config.ts ./
|
| 14 |
COPY --from=builder /app/public ./public
|
| 15 |
COPY --from=builder /app/.next ./.next
|
| 16 |
COPY --from=builder /app/node_modules ./node_modules
|
| 17 |
COPY --from=builder /app/package.json ./package.json
|
| 18 |
|
| 19 |
-
|
| 20 |
-
ENV PORT 7860
|
| 21 |
-
|
| 22 |
CMD ["npm", "start", "--", "-p", "7860"]
|
|
|
|
| 1 |
+
# Stage 1: Build Stage
|
| 2 |
FROM node:20-alpine AS builder
|
| 3 |
WORKDIR /app
|
| 4 |
+
|
| 5 |
+
# Step 1: Dependencies install karein
|
| 6 |
COPY package.json package-lock.json ./
|
| 7 |
+
# Agar package-lock nahi hai toh sirf package.json copy karke 'npm install' karein
|
| 8 |
RUN npm install
|
| 9 |
+
|
| 10 |
+
# Step 2: Saara code copy karein
|
| 11 |
COPY . .
|
| 12 |
+
|
| 13 |
+
# Step 3: Production build banayein
|
| 14 |
+
# Humne next.config.ts mein errors ignore karne ka set kar diya hai
|
| 15 |
RUN npm run build
|
| 16 |
|
| 17 |
+
# Stage 2: Runner Stage (Final Image)
|
| 18 |
FROM node:20-alpine AS runner
|
| 19 |
WORKDIR /app
|
| 20 |
+
|
| 21 |
+
# Production environment set karein
|
| 22 |
ENV NODE_ENV production
|
| 23 |
|
| 24 |
+
# --- SECRETS & PORT ---
|
| 25 |
+
# Hugging Face secrets yahan map honge
|
| 26 |
+
ENV GROQ_API_KEY=$GROQ_API_KEY
|
| 27 |
# Hugging Face default port 7860 use karta hai
|
| 28 |
+
ENV PORT 7860
|
| 29 |
+
EXPOSE 7860
|
| 30 |
+
|
| 31 |
+
# Step 4: Builder stage se sirf zaruri files copy karein (Optimized size)
|
| 32 |
COPY --from=builder /app/next.config.ts ./
|
| 33 |
COPY --from=builder /app/public ./public
|
| 34 |
COPY --from=builder /app/.next ./.next
|
| 35 |
COPY --from=builder /app/node_modules ./node_modules
|
| 36 |
COPY --from=builder /app/package.json ./package.json
|
| 37 |
|
| 38 |
+
# Step 5: App start karein
|
|
|
|
|
|
|
| 39 |
CMD ["npm", "start", "--", "-p", "7860"]
|