33 lines
806 B
Docker
33 lines
806 B
Docker
# 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
|