FROM node:22-trixie-slim AS build

RUN apt-get update \
 && apt-get upgrade -y \
 && apt-get install -y --no-install-recommends libxcb1 \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY faceai/package.json ./package.json
COPY faceai/apps/frontend/package.json apps/frontend/package.json
COPY faceai/apps/backend/package.json apps/backend/package.json
COPY faceai/apps/processor/package.json apps/processor/package.json

RUN npm install

COPY faceai/ .
COPY bin/Face_Recognition_Unix /opt/face-recognition

RUN chmod +x /opt/face-recognition/face_matcher

RUN npm run build

FROM node:22-trixie-slim AS runtime

RUN apt-get update \
 && apt-get upgrade -y \
 && apt-get install -y --no-install-recommends libxcb1 \
 && rm -rf /var/lib/apt/lists/*

WORKDIR /app

COPY --from=build /app /app
COPY --from=build /opt/face-recognition /opt/face-recognition

ENV NODE_ENV=production
ENV FACEAI_MATCHER_BINARY=/opt/face-recognition/face_matcher
EXPOSE 3001

CMD ["npm", "run", "start"]