# syntax=docker/dockerfile:1 # Comments are provided throughout this file to help you get started. # If you need more help, visit the Dockerfile reference guide at # https://docs.docker.com/engine/reference/builder/ ARG NODE_VERSION=16.17.0 FROM node:${NODE_VERSION}-alpine # Use production node environment by default. ENV NODE_ENV production WORKDIR /usr/src/app # Download dependencies as a separate step to take advantage of Docker's caching. # Leverage a cache mount to /root/.npm to speed up subsequent builds. COPY package-lock.json package.json ./ RUN --mount=type=cache,target=/root/.npm \ npm ci --omit=dev # Run the application as a non-root user. USER node COPY server.js . # Expose the port that the application listens on. EXPOSE 4000 # Run the application. CMD node server.js