################################################ FROM node:lts-alpine AS base # Create user and group RUN mkdir /app && \ addgroup -g 1001 -S nodejs && \ adduser -S nodejs -u 1001 && \ chown -R nodejs:nodejs /app WORKDIR /app ################################################ FROM base AS build # Create app directory and copy the app COPY package*.json tsconfig.json .npmrc ./ # Install ARG NPM_TOKEN RUN npm install --//npm.token=${NPM_TOKEN} # Copy the app COPY src ./src # Build RUN npm run build ################################################ FROM node:lts-alpine # Install dependencies but skip dev dependencies COPY --from=build /app/package*.json /app/.npmrc ./ ARG NPM_TOKEN RUN npm install --only=production --//npm.token=${NPM_TOKEN} # Copy the app COPY --from=build /app/dist ./dist # Start the app ENTRYPOINT ["npm", "run"] CMD ["start"]