Spaces:
Build error
Build error
FROM node:18-alpine AS build | |
# Install git and dependencies needed for Puppeteer | |
RUN apk add --no-cache git chromium nss freetype harfbuzz ca-certificates ttf-freefont | |
WORKDIR /app | |
# Clone the repository | |
RUN git clone https://github.com/Bhargav-Ravinuthala/invoify.git . | |
# Create .npmrc file to skip Puppeteer download | |
RUN echo "puppeteer_skip_chromium_download=true" > .npmrc | |
# Set environment variables for Puppeteer | |
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true | |
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser | |
# Remove the postinstall script from package.json to prevent it from running | |
RUN sed -i 's/"postinstall": "node node_modules\/puppeteer\/install.js"/"postinstall": "echo Skipping puppeteer install"/g' package.json || echo "No puppeteer postinstall script found" | |
# First install all dependencies | |
RUN npm install | |
# Build the application | |
RUN npm run build | |
FROM node:18-alpine AS production | |
# Install chromium and dependencies for Puppeteer in production | |
RUN apk add --no-cache chromium nss freetype harfbuzz ca-certificates ttf-freefont | |
RUN addgroup --system --gid 1001 nodejs | |
RUN adduser --system --uid 1001 nextjs | |
WORKDIR /app | |
# Copy only what's needed for production | |
COPY --from=build --chown=nextjs:nodejs /app/.next ./.next | |
COPY --from=build --chown=nextjs:nodejs /app/node_modules ./node_modules | |
COPY --from=build --chown=nextjs:nodejs /app/package.json ./package.json | |
COPY --from=build --chown=nextjs:nodejs /app/public ./public | |
COPY --from=build --chown=nextjs:nodejs /app/i18n ./i18n | |
# Set environment variables for Puppeteer in production | |
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true | |
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser | |
ENV NODE_ENV production | |
ENV PORT 3000 | |
# This is critical - make sure temp directories exist and are writable | |
RUN mkdir -p /tmp/chromium-data-dir && chmod -R 777 /tmp | |
USER nextjs | |
EXPOSE 3000 | |
# Use the start command from package.jsonss | |
CMD ["npm", "start"] |