FROM node:20-bookworm-slim AS build WORKDIR /app COPY package.json tsconfig.json ./ RUN npm install COPY src ./src RUN npm run build FROM node:20-bookworm-slim AS runtime ENV NODE_ENV=production ENV FEDEO_WORK_DIR=/work ENV FEDEO_SCAN_POSTPROCESS=true ENV FEDEO_SCAN_POSTPROCESS_PROFILE=receipt ENV FEDEO_SCAN_POSTPROCESS_PYTHON=/opt/fedeo-device-agent/.venv-opencv/bin/python ENV FEDEO_SCAN_POSTPROCESS_STRICT=false WORKDIR /opt/fedeo-device-agent RUN apt-get update \ && apt-get install -y --no-install-recommends \ ca-certificates \ cups-client \ libgomp1 \ python3 \ python3-pip \ python3-venv \ sane-utils \ && rm -rf /var/lib/apt/lists/* COPY requirements-opencv.txt ./ RUN python3 -m venv .venv-opencv \ && .venv-opencv/bin/python -m pip install --no-cache-dir --upgrade pip \ && .venv-opencv/bin/python -m pip install --no-cache-dir -r requirements-opencv.txt \ && .venv-opencv/bin/python -c "import cv2, PIL, numpy" COPY --from=build /app/dist ./dist COPY scripts ./scripts COPY package.json ./ RUN mkdir -p /work CMD ["node", "dist/main.js"]