mirror of
https://github.com/THU-MAIC/OpenMAIC.git
synced 2026-10-17 05:29:46 +08:00
Refresh the Chinese documentation against current functionality, synchronize all localized guides, document deployment and configuration behavior, and align the PPTX import feature flag implementation.
69 lines
1.9 KiB
Docker
69 lines
1.9 KiB
Docker
# ---- Stage 1: Base ----
|
|
FROM node:22-alpine AS base
|
|
|
|
RUN apk add --no-cache libc6-compat
|
|
RUN corepack enable && corepack prepare pnpm@10.28.0 --activate
|
|
|
|
WORKDIR /app
|
|
|
|
# ---- Stage 2: Dependencies ----
|
|
FROM base AS deps
|
|
|
|
# Native build tools for sharp, @napi-rs/canvas
|
|
RUN apk add --no-cache python3 build-base g++ cairo-dev pango-dev jpeg-dev giflib-dev librsvg-dev
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY packages/ ./packages/
|
|
COPY scripts/ ./scripts/
|
|
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
# ---- Stage 3: Builder ----
|
|
FROM base AS builder
|
|
|
|
ARG NEXT_PUBLIC_PERSISTENCE
|
|
ARG NEXT_PUBLIC_PERSISTENCE_TOKEN
|
|
ARG NEXT_PUBLIC_MAIC_EDITOR_ENABLED
|
|
ARG NEXT_PUBLIC_PI_CHAT_ENABLED
|
|
ARG NEXT_PUBLIC_SHOW_VOCATIONAL_TEST_UI
|
|
ARG NEXT_PUBLIC_ENABLE_VIDEO_EXPORT
|
|
ARG NEXT_PUBLIC_ENABLE_PPTX_IMPORT
|
|
ENV NEXT_PUBLIC_PERSISTENCE=$NEXT_PUBLIC_PERSISTENCE
|
|
ENV NEXT_PUBLIC_PERSISTENCE_TOKEN=$NEXT_PUBLIC_PERSISTENCE_TOKEN
|
|
ENV NEXT_PUBLIC_MAIC_EDITOR_ENABLED=$NEXT_PUBLIC_MAIC_EDITOR_ENABLED
|
|
ENV NEXT_PUBLIC_PI_CHAT_ENABLED=$NEXT_PUBLIC_PI_CHAT_ENABLED
|
|
ENV NEXT_PUBLIC_SHOW_VOCATIONAL_TEST_UI=$NEXT_PUBLIC_SHOW_VOCATIONAL_TEST_UI
|
|
ENV NEXT_PUBLIC_ENABLE_VIDEO_EXPORT=$NEXT_PUBLIC_ENABLE_VIDEO_EXPORT
|
|
ENV NEXT_PUBLIC_ENABLE_PPTX_IMPORT=$NEXT_PUBLIC_ENABLE_PPTX_IMPORT
|
|
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY --from=deps /app/packages ./packages
|
|
COPY . .
|
|
COPY --from=deps /app/public/vendor ./public/vendor
|
|
|
|
RUN pnpm build
|
|
|
|
# ---- Stage 4: Runner ----
|
|
FROM node:22-alpine AS runner
|
|
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
ENV HOSTNAME=0.0.0.0
|
|
ENV PORT=3000
|
|
|
|
RUN apk add --no-cache libc6-compat cairo pango jpeg giflib librsvg
|
|
|
|
RUN addgroup --system --gid 1001 nodejs && \
|
|
adduser --system --uid 1001 nextjs
|
|
|
|
COPY --from=builder /app/public ./public
|
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
|
|
|
USER nextjs
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["node", "server.js"]
|