2023-11-06 02:19:17 +00:00
|
|
|
|
|
|
|
|
|
ARG NODE_VERSION=20.0.0
|
|
|
|
|
|
|
|
|
|
FROM node:${NODE_VERSION}-alpine
|
|
|
|
|
|
|
|
|
|
ENV NODE_ENV production
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
2023-11-19 09:33:48 +00:00
|
|
|
|
|
|
|
|
|
RUN --mount=type=bind,source=package.json,target=package.json \
|
|
|
|
|
--mount=type=bind,source=package-lock.json,target=package-lock.json \
|
|
|
|
|
--mount=type=cache,target=/root/.npm
|
|
|
|
|
|
|
|
|
|
# Run the application as a root user.
|
2023-11-06 02:19:17 +00:00
|
|
|
|
USER root
|
|
|
|
|
|
|
|
|
|
# Copy the rest of the source files into the image.
|
|
|
|
|
COPY . .
|
|
|
|
|
|
|
|
|
|
# Expose the port that the application listens on.
|
|
|
|
|
EXPOSE 8000
|
|
|
|
|
|
|
|
|
|
# Run the application.
|
|
|
|
|
CMD node app.js
|
2023-11-19 09:33:48 +00:00
|
|
|
|
|