# Use a slim, Debian-based Node.js runtime for better compatibility
FROM node:18-slim

# Set the working directory in the container
WORKDIR /usr/src/app

# Copy package.json and package-lock.json to leverage Docker's layer caching
COPY package*.json ./

# Install app dependencies
RUN npm install --omit=dev

# Copy all project files, including the 'public' directory, into the container
COPY . .

# Make port 3000 available
EXPOSE 3000

# Define the command to run your app
CMD [ "node", "server.js" ]
