Files
startover/Dockerfile
T
Johngreen 41fc108803 fix: Docker 빌드 오류 수정 - prisma generate 명령어 및 타입 명시
- Dockerfile: prisma generate 명령어를 npx prisma generate로 수정
- feature-flag.ts: map 콜백 파라미터에 명시적 타입 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 22:39:28 +09:00

57 lines
1.8 KiB
Docker

# ============================================
# Re:Link Turborepo Multi-stage Dockerfile
# Usage: docker build --build-arg APP_NAME=web .
# ============================================
# --- Stage 1: Base ---
FROM node:20-alpine AS base
RUN apk add --no-cache libc6-compat
RUN corepack enable && corepack prepare pnpm@8.10.0 --activate
WORKDIR /app
# --- Stage 2: Install & Build ---
FROM base AS builder
ARG APP_NAME=web
# Copy workspace config first for better caching
COPY pnpm-lock.yaml pnpm-workspace.yaml package.json turbo.json ./
COPY apps/web/package.json ./apps/web/
COPY apps/admin/package.json ./apps/admin/
COPY packages/shared/package.json ./packages/shared/
COPY packages/domain/package.json ./packages/domain/
COPY packages/application/package.json ./packages/application/
COPY packages/infrastructure/package.json ./packages/infrastructure/
COPY packages/database/package.json ./packages/database/
COPY packages/analytics/package.json ./packages/analytics/
COPY packages/ui/package.json ./packages/ui/
RUN pnpm install --frozen-lockfile
# Copy all source code
COPY . .
# Generate Prisma client & build
RUN cd packages/database && npx prisma generate
RUN pnpm turbo run build --filter=@relink/${APP_NAME}
# --- Stage 3: Runner ---
FROM node:20-alpine AS runner
ARG APP_NAME=web
ENV NODE_ENV=production
ENV APP_NAME=${APP_NAME}
RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs
WORKDIR /app
COPY --from=builder /app/apps/${APP_NAME}/public ./public
COPY --from=builder --chown=nextjs:nodejs /app/apps/${APP_NAME}/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/apps/${APP_NAME}/.next/static ./apps/${APP_NAME}/.next/static
USER nextjs
EXPOSE 3000
ENV HOSTNAME="0.0.0.0"
ENV PORT=3000
CMD ["sh", "-c", "node apps/${APP_NAME}/server.js"]