FROM node:22-bookworm-slim AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:22-bookworm-slim ENV NODE_ENV=production PORT=3000 RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg fontconfig fonts-dejavu-core && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev && npm cache clean --force COPY --from=build /app/dist/server ./dist/server COPY --from=build /app/dist/shared ./dist/shared COPY --from=build /app/dist/cli ./dist/cli COPY --from=build /app/dist/web ./dist/web COPY LICENSE NOTICE THIRD_PARTY_NOTICES.md ./ USER node EXPOSE 3000 HEALTHCHECK --interval=30s --timeout=5s --start-period=30s CMD node -e "fetch('http://127.0.0.1:3000/readyz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))" CMD ["node", "dist/server/index.js"]