FROM node:18-alpine # 작업 디렉토리 설정 WORKDIR /app # 시스템 패키지 업데이트 및 필요한 패키지 설치 RUN apk add --no-cache \ curl \ bash \ && rm -rf /var/cache/apk/* # 사용자 권한 설정 RUN addgroup -g 1001 -S nodejs && \ adduser -S nodeuser -u 1001 # package.json과 package-lock.json 복사 COPY package*.json ./ # 의존성 설치 RUN npm ci --only=production && npm cache clean --force # 소스 코드 복사 COPY . . # 로그 디렉토리 생성 RUN mkdir -p logs && chown -R nodeuser:nodejs logs # 사용자 변경 USER nodeuser # 포트 노출 EXPOSE 3000 # 헬스체크 HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:3000/health || exit 1 # 애플리케이션 실행 CMD ["npm", "start"]