FROM node:20-alpine | |
# Create app directory | |
WORKDIR /app | |
# Install app dependencies | |
COPY package*.json ./ | |
# Install dependencies | |
RUN npm install | |
# Install additional dependencies | |
RUN npm install mongoose bcrypt jsonwebtoken @nestjs/passport @nestjs/jwt passport-jwt passport-custom jwt-decode passport-local uuid i18n-ts | |
# Bundle app source | |
COPY . . | |
# Create the dist directory and set permissions | |
RUN mkdir -p /app/dist && chown -R node:node /app | |
# Switch to non-root user | |
USER node | |
# Expose the port the app runs on | |
EXPOSE 7860 | |
# Command to run the application | |
CMD ["npm", "run", "start:dev"] | |