I researched and tested for 6 Hours and found that the below SCRIPT 1 as shown in Mosh’s lecture video is working only if you use the same version of node in video.
SCRIPT 1 - From Video
FROM node:14.16.0-alpine3.13
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
RUN npm install
EXPOSE 3000
CMD [“npm”, “start”]
SCRIPT 2
Latest and other alpine versions have default use NODE which is overriding our app users so below is the solution to use both NODE user and our app users.
###Using custom user i.e. app###
FROM node:16.10.0-alpine3.14
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
COPY --chown=app:node package*.json ./
RUN npm install
COPY --chown=app:node . .
EXPOSE 3000
CMD [“npm”, “start”]
###Using default user i.e. node###
FROM node:16.10.0-alpine3.14
RUN addgroup app && adduser -S -G app app
USER app
WORKDIR /app
COPY --chown=node:node package*.json ./
RUN npm install
COPY --chown=node:node . .
EXPOSE 3000
CMD [“npm”, “start”]