ARG NODE_IMAGE=m.daocloud.io/docker.io/library/node:22 ARG NPM_REGISTRY=https://registry.npmmirror.com FROM ${NODE_IMAGE} AS deps WORKDIR /app COPY package.json package-lock.json ./ RUN npm config set registry ${NPM_REGISTRY} && npm ci FROM ${NODE_IMAGE} AS builder WORKDIR /app ENV NEXT_TELEMETRY_DISABLED=1 COPY --from=deps /app/node_modules ./node_modules COPY . . RUN mkdir -p public/audio RUN npm run build FROM ${NODE_IMAGE} AS runner WORKDIR /app ARG NPM_REGISTRY=https://registry.npmmirror.com ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV HOSTNAME=0.0.0.0 ENV PORT=3000 ENV AUDIO_DIRECTORY=/app/public/audio COPY package.json package-lock.json ./ RUN npm config set registry ${NPM_REGISTRY} && npm ci --omit=dev && npm cache clean --force COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/next.config.ts ./next.config.ts RUN mkdir -p /app/data /app/public/audio EXPOSE 3000 CMD ["npm", "run", "start"]