diff --git a/backend/services/leaderboard-service/Dockerfile b/backend/services/leaderboard-service/Dockerfile index 419eb3d9..484c5ab1 100644 --- a/backend/services/leaderboard-service/Dockerfile +++ b/backend/services/leaderboard-service/Dockerfile @@ -1,13 +1,21 @@ -# Multi-stage build for production -FROM node:20-alpine AS builder +# ============================================================================= +# Leaderboard Service Dockerfile +# ============================================================================= + +# Build stage - use Debian slim for better Prisma compatibility +FROM node:20-slim AS builder WORKDIR /app # Install OpenSSL for Prisma -RUN apk add --no-cache openssl +RUN apt-get update && apt-get install -y --no-install-recommends \ + openssl \ + && rm -rf /var/lib/apt/lists/* # Copy package files COPY package*.json ./ +COPY tsconfig*.json ./ +COPY nest-cli.json ./ COPY prisma ./prisma/ # Install dependencies @@ -17,11 +25,14 @@ RUN npm ci RUN DATABASE_URL="postgresql://user:pass@localhost:5432/db" npx prisma generate # Copy source code -COPY . . +COPY src ./src # Build the application RUN npm run build +# Verify build output exists +RUN ls -la dist/src/ && test -f dist/src/main.js + # Production stage - use Debian slim for OpenSSL compatibility FROM node:20-slim AS production