Spaces:
Sleeping
Sleeping
| # Build stage | |
| FROM node:20-alpine AS builder | |
| WORKDIR /app | |
| # Copy package files | |
| COPY package.json yarn.lock ./ | |
| COPY prisma ./prisma/ | |
| # Install dependencies | |
| RUN yarn install --frozen-lockfile | |
| RUN yarn prisma generate | |
| # Copy source code | |
| COPY . . | |
| # Build TypeScript code | |
| RUN yarn build | |
| # Production stage | |
| FROM node:20-alpine AS runner | |
| WORKDIR /app | |
| # Set to production environment | |
| ENV NODE_ENV=production | |
| # Copy necessary files from builder | |
| COPY --from=builder /app/package.json /app/yarn.lock ./ | |
| COPY --from=builder /app/dist ./dist | |
| COPY --from=builder /app/prisma ./prisma | |
| COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma | |
| COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma | |
| # Install production dependencies | |
| RUN yarn install --frozen-lockfile --production | |
| # Expose the port your server runs on | |
| EXPOSE 3001 | |
| # Start the application | |
| CMD ["yarn", "start"] |