FROM node:26.12.1-slim AS deps WORKDIR /app ENV NODE_OPTIONS="" RUN apt-get update && apt-get install -y --no-install-recommends \ python3 make g++ libtool automake autoconf pkg-config libopus-dev ca-certificates \ && rm -rf /var/lib/apt/lists/* COPY package.json package-lock.json ./ RUN npm ci --include=dev FROM deps AS builder COPY tsconfig.bots.json ./ COPY src/lib ./src/lib RUN npx tsc -p tsconfig.bots.json || true FROM deps AS modules RUN npm prune --production FROM node:26.12.1-slim AS runner WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg libopus0 ca-certificates \ && rm -rf /var/lib/apt/lists/* COPY --from=modules /app/node_modules ./node_modules COPY package.json ./ COPY otel ./otel COPY static/wakeword ./static/wakeword COPY src/lib/backend/bots/official-bot/locales ./src/lib/backend/bots/official-bot/locales COPY --from=builder /app/bots ./bots ENV NODE_ENV=production CMD ["node", "--import", "./otel/console-instrumentation.js", "bots/backend/bots/runner.js"]