# Use lightweight Node.js 20 base image FROM node:20-alpine@sha256:9bef0ef1e268f60627da9ba7d7605e8831d5b56ad07487d24d1aa386336d1944 as builder # Set working directory WORKDIR /app # Copy package files separately for better Docker caching COPY package.json package-lock.json ./ # Install dependencies RUN npm ci # Copy entire project COPY . . ## Set it as an environment variable for the build process #ARG HCAPTCHA_SITE_KEY #ENV NEXT_PUBLIC_HCAPTCHA_SITE_KEY=$HCAPTCHA_SITE_KEY # ## Create a .env file before build #RUN echo "NEXT_PUBLIC_HCAPTCHA_SITE_KEY=$HCAPTCHA_SITE_KEY" # Build the Next.js app RUN npm run build # Use a minimal base image for running the app FROM node:20-alpine@sha256:9bef0ef1e268f60627da9ba7d7605e8831d5b56ad07487d24d1aa386336d1944 WORKDIR /app # Copy built files from the builder stage COPY --from=builder /app ./ # Expose port EXPOSE 3000 # Start Next.js in production mode CMD ["/bin/sh", "-c", "set -a && [ -f .env ] && . .env && set +a && next start"]