# Use node alpine image
FROM node:18-alpine

# Install build dependencies
RUN apk add --no-cache make gcc g++ python3 openssl musl-dev libc6-compat

WORKDIR /src

# Copy only package files
COPY package.json package-lock.json ./

# Install node modules
RUN npm install

# Copy all source code after installing dependencies
COPY . .

# Generate Prisma client correctly
RUN npx prisma generate

# Expose port
EXPOSE 3000

# Start command
CMD ["npm", "run", "start:dev"]
