FROM node:22-slim

# Install pnpm and build tools required for native modules (sharp, bcrypt).
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates \
    python3 \
    make \
    g++ \
  && rm -rf /var/lib/apt/lists/* \
  && corepack enable && corepack prepare pnpm@10.26.0 --activate

WORKDIR /app

# Install dependencies first to leverage Docker layer caching.
COPY package.json pnpm-lock.yaml ./
RUN pnpm install --frozen-lockfile --prod

# Copy application code.
COPY config ./config
COPY moleculer.config.js ./
COPY services ./services

EXPOSE 3003

CMD ["pnpm", "start"]
