diff --git a/apps/landing/Dockerfile b/apps/landing/Dockerfile index 3913763..e6d611a 100644 --- a/apps/landing/Dockerfile +++ b/apps/landing/Dockerfile @@ -1,88 +1,39 @@ -# Multi-stage Dockerfile for Next.js Landing Page - -# Stage 1: Dependencies -FROM node:20-alpine AS deps -WORKDIR /app - -# Install pnpm -RUN npm install -g pnpm@10.11.0 - -# Copy workspace configuration -COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./ - -# Copy landing package.json -COPY apps/landing/package.json ./apps/landing/ - -# Copy database package (workspace dependency) -COPY packages/database/package.json ./packages/database/ - -# Install dependencies -RUN pnpm install --frozen-lockfile - -# Stage 2: Builder +# Simplified Dockerfile for Next.js Landing Page FROM node:20-alpine AS builder WORKDIR /app # Install pnpm RUN npm install -g pnpm@10.11.0 -# Copy dependencies from deps stage -COPY --from=deps /app/node_modules ./node_modules -COPY --from=deps /app/apps/landing/node_modules ./apps/landing/node_modules -COPY --from=deps /app/packages/database/node_modules ./packages/database/node_modules - -# Copy workspace files +# Copy everything COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./ - -# Copy database package +COPY apps/landing ./apps/landing COPY packages/database ./packages/database -# Copy landing app -COPY apps/landing ./apps/landing - -# Build Next.js application from root using pnpm filter -WORKDIR /app +# Install and build +RUN pnpm install --frozen-lockfile ENV NEXT_TELEMETRY_DISABLED=1 RUN pnpm --filter @banatie/landing build -# Stage 3: Production Runner +# Production runner FROM node:20-alpine AS runner WORKDIR /app -# Install pnpm -RUN npm install -g pnpm@10.11.0 - ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 -# Create non-root user RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs -# Copy workspace configuration -COPY --from=builder /app/pnpm-workspace.yaml ./ -COPY --from=builder /app/package.json ./ -COPY --from=builder /app/pnpm-lock.yaml ./ - -# Copy database package -COPY --from=builder /app/packages/database ./packages/database - -# Copy built Next.js application -COPY --from=builder --chown=nextjs:nodejs /app/apps/landing/.next ./apps/landing/.next -COPY --from=builder /app/apps/landing/package.json ./apps/landing/ +# Copy built app +COPY --from=builder /app/apps/landing/.next/standalone ./ +COPY --from=builder /app/apps/landing/.next/static ./apps/landing/.next/static COPY --from=builder /app/apps/landing/public ./apps/landing/public -# Copy node_modules for runtime -COPY --from=builder /app/node_modules ./node_modules -COPY --from=builder /app/apps/landing/node_modules ./apps/landing/node_modules -COPY --from=builder /app/packages/database/node_modules ./packages/database/node_modules - USER nextjs - EXPOSE 3000 - ENV PORT=3000 +ENV HOSTNAME=0.0.0.0 WORKDIR /app/apps/landing - -CMD ["pnpm", "start"] +CMD ["node", "server.js"]