diff --git a/Dockerfile b/Dockerfile index 218628d..49c4f97 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,7 +36,8 @@ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static COPY --from=builder --chown=nextjs:nodejs /app/public ./public # 파일 업로드 디렉토리 -RUN mkdir -p /data_storage && chown nextjs:nodejs /data_storage +RUN mkdir -p /data_storage /app/public/uploads/items && \ + chown -R nextjs:nodejs /data_storage /app/public/uploads USER nextjs EXPOSE 3000 diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 23883a2..f5a1a3b 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -13,11 +13,12 @@ services: - .env.production volumes: - ./data_storage:/data_storage + # 업로드 이미지 영구 저장 (컨테이너 재빌드 시에도 보존) + - ./public/uploads:/app/public/uploads # 자가 배포: webhook 이 호스트의 deploy.sh 를 실행하기 위함 - /var/run/docker.sock:/var/run/docker.sock - ./scripts/deploy.sh:/deploy/deploy.sh:ro # source 디렉토리를 컨테이너 안에서 git pull 하기 위해 호스트의 소스를 마운트 - # (호스트 ~/momo-erp/source 를 /deploy/source 로) - $PWD:/deploy/source networks: - traefik-net diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 6c8420a..ed3631e 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -10,6 +10,10 @@ echo "[$(date)] git fetch + reset --hard origin/main" git fetch origin git reset --hard origin/main +# 업로드 디렉토리 보장 (컨테이너 마운트 경로) +mkdir -p public/uploads/items +chmod -R 777 public/uploads || true + echo "[$(date)] docker compose up --build" docker compose -f docker-compose.prod.yml up -d --build diff --git a/src/app/(main)/m/items/page.tsx b/src/app/(main)/m/items/page.tsx index cc47db2..baa4ace 100644 --- a/src/app/(main)/m/items/page.tsx +++ b/src/app/(main)/m/items/page.tsx @@ -58,6 +58,12 @@ export default function ItemsBrowse() { } return [...c, { item, qty: 1 }]; }); + // 시각 피드백: 우측 상단 토스트 + Swal.fire({ + toast: true, position: "top-end", icon: "success", + title: `장바구니에 추가됨: ${item.ITEM_NAME}`, + showConfirmButton: false, timer: 1500, timerProgressBar: true, + }); }; const updateQty = (objid: string, delta: number) => { @@ -123,7 +129,7 @@ export default function ItemsBrowse() { }; return ( -
+

품목 검색

@@ -194,7 +200,7 @@ export default function ItemsBrowse() {
{/* 장바구니 */} -