# Build stage FROM --platform=$TARGETPLATFORM node:20-slim AS builder WORKDIR /app # Copy package files COPY backend/package*.json ./backend/ COPY frontend/package*.json ./frontend/ # Install dependencies RUN cd backend && npm ci RUN cd frontend && npm ci # Copy source files COPY . . # Build frontend and backend RUN npm run build --workspaces # Production stage FROM --platform=$TARGETPLATFORM debian:testing-20250203 RUN apt-get update && apt-get install -y \ mpv npm yt-dlp pulseaudio pulseaudio-utils \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Install only production dependencies COPY backend/package*.json ./ RUN npm ci --production # Copy built files COPY --from=builder /app/backend/build ./build COPY --from=builder /app/frontend/dist ./dist/frontend EXPOSE 3000 CMD ["node", "build/server.js"]