# Use the official Node.js image as the base image FROM node:14 # Set the working directory inside the container WORKDIR /app # Change ownership of the working directory to the non-root user RUN adduser --disabled-password --gecos '' --shell /bin/bash user \ && chown -R user:user /app USER user # All users can use /home/user as their home directory ENV HOME=/home/user RUN mkdir $HOME/.cache $HOME/.config \ && chmod -R 777 $HOME WORKDIR $HOME/app ####################################### # Start root user section ####################################### USER root # Copy package.json and package-lock.json to the working directory COPY package*.json ./ # Copy the current directory contents into the container at $HOME/app setting the owner to the user COPY --chown=user . $HOME/app # Install the dependencies RUN npm ci # Copy the rest of the application code to the working directory COPY --chown=user . . # Expose the port the app will run on EXPOSE 3001 # Start the application CMD ["npm", "run", "dev"]