# Use Node.js LTS version
FROM node:20-alpine

# Install system dependencies for native modules (sharp, node-libcurl, bcrypt-nodejs, imagemagick)
RUN apk add --no-cache \
    python3 \
    make \
    g++ \
    git \
    curl-dev \
    imagemagick

# Set working directory
WORKDIR /app

# Copy package files
COPY package*.json ./

# Install dependencies
# Using --legacy-peer-deps to resolve mongoose-auto-increment peer dependency conflict
RUN npm install --legacy-peer-deps

# Copy application files
COPY . .

# Create upload directories if they don't exist
RUN mkdir -p upload/image public/styles

# Expose port 4000 (default port from bin/www, configurable via PORT env var)
EXPOSE 4000

# Set NODE_ENV to dev (development environment)
ENV NODE_ENV=dev

# Start the application
CMD ["node", "bin/www"]
