| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- # Stage 1: Install dependencies
- FROM node:22-bookworm AS deps
- # 使用阿里云镜像源
- RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources
- RUN corepack enable && corepack prepare pnpm@10.24.0 --activate
- RUN apt-get update && \
- apt-get install -y --no-install-recommends ffmpeg python3 python3-pip && \
- rm -rf /var/lib/apt/lists/*
- RUN pip3 install --break-system-packages -i https://mirrors.aliyun.com/pypi/simple/ faster-whisper
- WORKDIR /app
- COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
- COPY apps/cli/package.json apps/cli/
- COPY apps/web/package.json apps/web/
- COPY packages/shared/package.json packages/shared/
- COPY packages/core/package.json packages/core/
- COPY packages/tts/package.json packages/tts/
- COPY packages/templates/package.json packages/templates/
- COPY packages/collect/package.json packages/collect/
- RUN pnpm config set registry https://registry.npmmirror.com && \
- pnpm install --frozen-lockfile
- # Stage 2: Build
- FROM deps AS build
- COPY . .
- RUN pnpm build
- # Stage 3: Runtime
- FROM node:22-bookworm-slim AS runtime
- RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources
- RUN apt-get update && \
- apt-get install -y --no-install-recommends ffmpeg python3 python3-pip && \
- rm -rf /var/lib/apt/lists/*
- RUN pip3 install --break-system-packages -i https://mirrors.aliyun.com/pypi/simple/ faster-whisper
- WORKDIR /app
- COPY --from=build /app/package.json ./
- COPY --from=build /app/node_modules node_modules/
- COPY --from=build /app/apps/cli/dist apps/cli/dist/
- COPY --from=build /app/apps/cli/package.json apps/cli/
- COPY --from=build /app/apps/web/.next apps/web/.next/
- COPY --from=build /app/apps/web/node_modules apps/web/node_modules/
- COPY --from=build /app/apps/web/package.json apps/web/
- COPY --from=build /app/apps/web/next.config.ts apps/web/
- COPY --from=build /app/apps/web/src apps/web/src/
- COPY --from=build /app/packages/shared/dist packages/shared/dist/
- COPY --from=build /app/packages/shared/package.json packages/shared/
- COPY --from=build /app/packages/core/dist packages/core/dist/
- COPY --from=build /app/packages/core/package.json packages/core/
- COPY --from=build /app/packages/tts/dist packages/tts/dist/
- COPY --from=build /app/packages/tts/package.json packages/tts/
- COPY --from=build /app/packages/tts/scripts packages/tts/scripts/
- COPY --from=build /app/packages/templates/dist packages/templates/dist/
- COPY --from=build /app/packages/templates/src packages/templates/src/
- COPY --from=build /app/packages/templates/package.json packages/templates/
- COPY --from=build /app/packages/collect/dist packages/collect/dist/
- COPY --from=build /app/packages/collect/package.json packages/collect/
- COPY --from=build /app/assets assets/
- COPY --from=build /app/config config/
- EXPOSE 3000
- WORKDIR /app/apps/web
- CMD ["./node_modules/.bin/next", "start"]
|