Spaces:
Running
Running
# 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"] |