# Build Stage
FROM node:lts-alpine AS build-stage

# Create app directory
WORKDIR /app

# Install app dependencies
COPY package*.json ./

RUN npm ci

# Copy source files and build the app
COPY . .
RUN npm run build

# Production Stage
FROM node:lts-alpine

ENV NODE_ENV production
USER node

# Create app directory
WORKDIR /app

# Copy built app from build stage
COPY --from=build-stage /app/dist ./dist

# Install only production dependencies
COPY package*.json ./
RUN npm ci --production

# Define the entrypoint and default command
# If you have a custom entrypoint script
CMD [ "node", "dist/app.js" ]
