FROM node:20-alpine WORKDIR /app # Build deps for sharp on alpine RUN apk add --no-cache python3 make g++ libc6-compat vips-dev # Install dependencies first (better layer caching) COPY server/package*.json ./server/ WORKDIR /app/server RUN npm install --production # Copy the rest of the app (frontend + backend) WORKDIR /app COPY . . WORKDIR /app/server EXPOSE 4000 CMD ["npm", "start"]