FROM node:20-slim WORKDIR /app # Install pnpm RUN npm install -g pnpm@9 # Copy package files COPY package.json pnpm-lock.yaml* ./ # Install dependencies RUN pnpm install --frozen-lockfile --prod # Copy source COPY . . # Build RUN pnpm build # Create data directory RUN mkdir -p /app/data # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:3310/health || exit 1 EXPOSE 3310 CMD ["node", "dist/main.js"]