Files
vexplor/docker/prod/backend.Dockerfile
kjs 6fc140b423 fix: Docker 파일에서 Prisma 명령 제거
문제:
- docker/dev/backend.Dockerfile에 Prisma 명령 남아있음
- docker/prod/backend.Dockerfile에 Prisma 명령 남아있음
- Docker 빌드 시 '/prisma' not found 에러 발생

해결:

1. docker/dev/backend.Dockerfile:
   - COPY prisma ./prisma 제거
   - RUN npx prisma generate 제거

2. docker/prod/backend.Dockerfile:
   - Dependencies stage: Prisma 관련 코드 제거
   - Build stage: COPY prisma 제거, npx prisma generate 제거
   - Runtime stage: 주석 업데이트

결과:
-  Docker 빌드 에러 해결
-  Prisma 의존성 완전 제거
-  개발/운영 환경 모두 Raw Query 기반
2025-10-01 15:11:07 +09:00

46 lines
1.3 KiB
Docker

# syntax=docker/dockerfile:1
# Base image (Debian-based for glibc + OpenSSL compatibility)
FROM node:20-bookworm-slim AS base
WORKDIR /app
ENV NODE_ENV=production
# Install OpenSSL, curl (for healthcheck), and required certs
RUN apt-get update \
&& apt-get install -y --no-install-recommends openssl ca-certificates curl \
&& rm -rf /var/lib/apt/lists/*
# Dependencies stage (install production dependencies)
FROM base AS deps
COPY package*.json ./
RUN npm ci --omit=dev --prefer-offline --no-audit && npm cache clean --force
# Build stage (compile TypeScript)
FROM node:20-bookworm-slim AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci --prefer-offline --no-audit && npm cache clean --force
COPY tsconfig.json ./
COPY src ./src
RUN npm run build
# Runtime image - base 이미지 재사용으로 중복 설치 제거
FROM base AS runner
ENV NODE_ENV=production
# Create non-root user
RUN groupadd -r appgroup && useradd -r -g appgroup appuser
# Copy production node_modules
COPY --from=deps /app/node_modules ./node_modules
# Copy built files
COPY --from=build /app/dist ./dist
# Copy package files
COPY package*.json ./
# Create logs and uploads directories and set permissions
RUN mkdir -p logs uploads && chown -R appuser:appgroup logs uploads && chmod -R 755 logs uploads
EXPOSE 8080
USER appuser
CMD ["node", "dist/app.js"]