Plandex_backup / Dockerfile
AUXteam's picture
Upload folder using huggingface_hub
7429d45 verified
# Stage 1: Build the Vite application
FROM node:20-alpine AS build
WORKDIR /app
# Copy package files and install dependencies
COPY package*.json ./
RUN npm ci
# Copy the rest of the source code
COPY . .
# Build the application, creating the 'dist' folder
RUN npm run build
# Stage 2: Production image
FROM node:20-alpine
# Install Chromium and dependencies for Puppeteer
RUN apk add --no-cache \
chromium \
nss \
freetype \
harfbuzz \
ca-certificates \
ttf-freefont
# Use the existing node user (UID 1000)
USER node
ENV HOME=/home/node \
PATH=/home/node/.local/bin:$PATH
# Tell Puppeteer to use the installed Chromium
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
WORKDIR /app
# Set the environment to production
ENV NODE_ENV production
# Copy only the necessary files for running the app
COPY --from=build --chown=node /app/package*.json ./
COPY --from=build --chown=node /app/node_modules ./node_modules
COPY --from=build --chown=node /app/dist ./dist
COPY --from=build --chown=node /app/server.js ./server.js
# Expose the port required by Hugging Face
EXPOSE 7860
# The command to start our custom Node.js server
CMD ["node", "server.js"]