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 pnpm-lock.yaml pnpm-workspace.yaml ./ RUN corepack enable \ && pnpm config set registry ${NPM_REGISTRY} \ && pnpm install --frozen-lockfile 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 pnpm-lock.yaml pnpm-workspace.yaml ./ RUN corepack enable \ && pnpm config set registry ${NPM_REGISTRY} \ && pnpm install --prod --frozen-lockfile \ && pnpm store prune 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 ["pnpm", "start"]