25 lines
640 B
Docker
25 lines
640 B
Docker
# 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 . .
|
|
|
|
# Bake a cache-busting version into the service worker
|
|
ARG APP_VERSION=dev
|
|
RUN sed -i "s/__APP_VERSION__/${APP_VERSION}/g" public/sw.js
|
|
|
|
# Make port 3000 available
|
|
EXPOSE 3000
|
|
|
|
# Define the command to run your app
|
|
CMD [ "node", "server.js" ]
|