Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 50 additions & 1 deletion apps/frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1 +1,50 @@
# TODO: 前端 Dockerfile
# /apps/frontend/Dockerfile
FROM node:20-alpine AS base-build
RUN apk update && apk add --no-cache libc6-compat

FROM node:20-alpine AS base-runner

FROM base-build AS builder
WORKDIR /app

RUN npm install -g turbo

COPY . .

RUN turbo prune --scope=frontend --docker

FROM base-build AS installer
WORKDIR /app

COPY --from=builder /app/out/json/ .
COPY --from=builder /app/out/pnpm-lock.yaml ./pnpm-lock.yaml

RUN npm install -g corepack@latest \
&& corepack enable \
&& corepack prepare pnpm@9.12.3 --activate

RUN pnpm install --frozen-lockfile

COPY --from=builder /app/out/full/ .

RUN mkdir -p /app/apps/frontend/public

RUN pnpm build --filter=frontend

FROM base-runner AS runner
WORKDIR /app

RUN addgroup --system --gid 1001 nodejs \
&& adduser --system --uid 1001 nextjs

USER nextjs

COPY --from=installer /app/apps/frontend/next.config.mjs .
COPY --from=installer /app/apps/frontend/package.json .

COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/.next/standalone ./
COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/.next/static ./apps/frontend/.next/static
COPY --from=installer --chown=nextjs:nodejs /app/apps/frontend/public ./apps/frontend/public

CMD ["node", "apps/frontend/server.js"]