| 1234567891011121314151617181920212223242526272829303132333435 |
- ARG NODE_IMAGE=node:20-alpine
- FROM ${NODE_IMAGE} AS build
- WORKDIR /app
- COPY backend/package*.json ./
- RUN npm ci
- COPY backend/prisma ./prisma
- RUN npm run prisma:generate
- COPY backend/ ./
- RUN npm run build
- FROM ${NODE_IMAGE} AS runtime
- WORKDIR /app
- ENV NODE_ENV=production
- COPY backend/package*.json ./
- RUN npm ci --include=dev
- COPY --from=build /app/node_modules/.prisma ./node_modules/.prisma
- COPY --from=build /app/node_modules/@prisma/client ./node_modules/@prisma/client
- COPY --from=build /app/prisma ./prisma
- COPY backend/prisma/seed-initial.cjs ./prisma/seed-initial.cjs
- COPY backend/prisma/seed-demo.cjs ./prisma/seed-demo.cjs
- COPY --from=build /app/dist ./dist
- COPY docker/backend-entrypoint.sh /usr/local/bin/backend-entrypoint.sh
- RUN chmod +x /usr/local/bin/backend-entrypoint.sh
- EXPOSE 3000
- ENTRYPOINT ["backend-entrypoint.sh"]
- CMD ["npm", "run", "start:prod"]
|