This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
scoresaber-reloadedv3/backend/Dockerfile

38 lines
851 B
Docker
Raw Normal View History

2024-10-04 22:55:24 +01:00
# Stage 1: Builder
FROM node:20-alpine3.17 AS builder
2024-10-04 20:57:05 +01:00
2024-10-04 22:55:24 +01:00
# Install pnpm globally
2024-10-04 20:57:05 +01:00
RUN npm install -g pnpm
ENV PNPM_HOME=/usr/local/bin
2024-10-04 20:35:44 +01:00
WORKDIR /app
2024-10-04 20:49:45 +01:00
2024-10-04 22:55:24 +01:00
# Copy necessary files for installation
2024-10-04 21:05:21 +01:00
COPY package.json* pnpm-lock.yaml* pnpm-workspace.yaml* ./
2024-10-04 22:55:24 +01:00
COPY common ./common
2024-10-04 21:05:21 +01:00
COPY backend ./backend
2024-10-04 20:49:45 +01:00
2024-10-04 22:55:24 +01:00
# Install dependencies for all workspaces, including backend
RUN pnpm install
2024-10-04 20:35:44 +01:00
2024-10-04 22:55:24 +01:00
# Build the backend
RUN pnpm --filter backend build
# Stage 2: Runner
FROM node:20-alpine3.17 AS runner
WORKDIR /app
COPY --from=builder /app/package.json ./package.json
COPY --from=builder /app/backend/dist ./dist
COPY --from=builder /app/backend/package.json ./backend/package.json
# Install production dependencies
RUN npm install -g pnpm && pnpm install --prod
# Expose the port your application runs on
2024-10-04 20:53:35 +01:00
EXPOSE 8080
2024-10-04 20:49:45 +01:00
2024-10-04 22:55:24 +01:00
# Command to run your app
CMD ["node", "dist/main.js"]