FROM node:22-bookworm-slim AS build ARG RAG_VERSION=0.1.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.1.0 ARG BUILD_REVISION=unknown WORKDIR /app ENV NODE_ENV=production OCR_ARTIFACT_ROOT=/data/ingestions RAG_VERSION=${RAG_VERSION} LABEL 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"]