FROM node:22-bookworm-slim AS build
ARG RAG_VERSION=0.2.0
ARG BUILD_REVISION=unknown
WORKDIR /app
COPY package.json package-lock.json tsconfig.json ./
RUN npm ci
COPY src ./src
COPY migrations ./migrations
COPY public ./public
RUN npm run build

FROM node:22-bookworm-slim AS runtime
ARG RAG_VERSION=0.2.0
ARG BUILD_REVISION=unknown
WORKDIR /app
ENV NODE_ENV=production OCR_ARTIFACT_ROOT=/data/ingestions RAG_VERSION=${RAG_VERSION} BUILD_REVISION=${BUILD_REVISION}
LABEL org.opencontainers.image.version=${RAG_VERSION} \
      org.opencontainers.image.revision=${BUILD_REVISION}
COPY package.json package-lock.json ./
RUN npm ci --omit=dev
COPY --from=build /app/dist ./dist
COPY --from=build /app/migrations ./migrations
COPY public ./public
RUN install -d -o node -g node -m 700 /data/ingestions
VOLUME ["/data/ingestions"]
USER node
EXPOSE 3000
CMD ["sh", "-c", "node dist/modules/catalog/migrations.js && exec node dist/server.js"]
