# =========================================== # Weekly Report - Production Dockerfile # =========================================== FROM node:22-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . # 운영 환경변수로 빌드 COPY .env.prod .env RUN npm run build FROM node:22-alpine WORKDIR /app # 타임존 설정 RUN apk add --no-cache tzdata \ && cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime \ && echo "Asia/Seoul" > /etc/timezone \ && apk del tzdata ENV NODE_ENV=production ENV HOST=0.0.0.0 ENV PORT=2026 # 빌드 결과물 복사 COPY --from=builder /app/.output /app/.output # 런타임 의존성 설치 (pg, openai 등) COPY --from=builder /app/package*.json /app/ RUN npm ci --omit=dev # 운영 환경변수 복사 COPY .env.prod /app/.env # 비root 사용자 RUN addgroup -g 1001 -S nodejs \ && adduser -S nuxt -u 1001 -G nodejs \ && chown -R nuxt:nodejs /app USER nuxt EXPOSE 2026 # .env 로드 후 실행 CMD ["sh", "-c", "export $(grep -v '^#' .env | xargs) && node .output/server/index.mjs"]