diff --git a/backend-node/src/config/multerConfig.ts b/backend-node/src/config/multerConfig.ts index e1389030..3179d2b2 100644 --- a/backend-node/src/config/multerConfig.ts +++ b/backend-node/src/config/multerConfig.ts @@ -2,12 +2,19 @@ import multer from 'multer'; import path from 'path'; import fs from 'fs'; -// 업로드 디렉토리 경로 -const UPLOAD_DIR = path.join(__dirname, '../../uploads/mail-attachments'); +// 업로드 디렉토리 경로 (운영: /app/uploads/mail-attachments, 개발: 프로젝트 루트) +const UPLOAD_DIR = process.env.NODE_ENV === 'production' + ? '/app/uploads/mail-attachments' + : path.join(process.cwd(), 'uploads', 'mail-attachments'); -// 디렉토리 생성 (없으면) -if (!fs.existsSync(UPLOAD_DIR)) { - fs.mkdirSync(UPLOAD_DIR, { recursive: true }); +// 디렉토리 생성 (없으면) - try-catch로 권한 에러 방지 +try { + if (!fs.existsSync(UPLOAD_DIR)) { + fs.mkdirSync(UPLOAD_DIR, { recursive: true }); + } +} catch (error) { + console.error('메일 첨부파일 디렉토리 생성 실패:', error); + // 디렉토리가 이미 존재하거나 권한이 없어도 서비스는 계속 실행 } // 간단한 파일명 정규화 함수 (한글-분석.txt 방식) diff --git a/docker/deploy/backend.Dockerfile b/docker/deploy/backend.Dockerfile index b7ecb1ba..08ab6f5a 100644 --- a/docker/deploy/backend.Dockerfile +++ b/docker/deploy/backend.Dockerfile @@ -35,7 +35,9 @@ COPY --from=build /app/dist ./dist COPY package*.json ./ # Create logs, uploads, and data directories and set permissions (use existing node user with UID 1000) -RUN mkdir -p logs uploads data/mail-sent && chown -R node:node logs uploads data && chmod -R 755 logs uploads data +RUN mkdir -p logs uploads/mail-attachments data/mail-sent && \ + chown -R node:node logs uploads data && \ + chmod -R 755 logs uploads data EXPOSE 3001 USER node diff --git a/scripts/prod/deploy.sh b/scripts/prod/deploy.sh index 428dd459..5ef1d5dc 100755 --- a/scripts/prod/deploy.sh +++ b/scripts/prod/deploy.sh @@ -24,11 +24,11 @@ git pull origin main echo "" echo "[2/6] 호스트 디렉토리 준비..." mkdir -p /home/vexplor/backend_data/data/mail-sent -mkdir -p /home/vexplor/backend_data/uploads +mkdir -p /home/vexplor/backend_data/uploads/mail-attachments mkdir -p /home/vexplor/frontend_data chmod -R 755 /home/vexplor/backend_data chmod -R 755 /home/vexplor/frontend_data -echo "디렉토리 생성 완료" +echo "디렉토리 생성 완료 (data, uploads, frontend)" # 기존 컨테이너 중지 및 제거 echo ""