fix(momo): /data_storage 를 named volume 으로 전환 — 업로드 EACCES 해소
Deploy momo-erp / deploy (push) Successful in 53s

호스트 바인드 마운트는 docker compose 가 root 소유로 자동 생성해
컨테이너 nextjs(uid 1001) 가 mkdir 불가. named volume(momo_data_storage)
은 Dockerfile 의 chown nextjs:nodejs 를 그대로 복제하여 권한 문제 사라짐.
deploy.sh 의 host-side mkdir/chmod 도 더 이상 불필요하므로 제거.
This commit is contained in:
chpark
2026-04-26 17:16:59 +09:00
parent ba1cd769d7
commit a2707d658e
2 changed files with 9 additions and 7 deletions
+8 -3
View File
@@ -12,9 +12,11 @@ services:
env_file:
- .env.production
volumes:
- ./data_storage:/data_storage
# 업로드 이미지 영구 저장 (컨테이너 재빌드 시에도 보존)
- ./public/uploads:/app/public/uploads
# 업로드 이미지 영구 저장 — named volume 사용
# (호스트 바인드 마운트 시 root 소유로 자동 생성되어 nextjs uid 1001 의 mkdir 권한 부족.
# named volume 은 이미지의 /data_storage 디렉토리(Dockerfile 에서 chown nextjs:nodejs)를
# 볼륨 초기화 시 그대로 복제하므로 권한 문제 없음.)
- momo_data_storage:/data_storage
# 자가 배포: webhook 이 호스트의 deploy.sh 를 실행하기 위함
- /var/run/docker.sock:/var/run/docker.sock
- ./scripts/deploy.sh:/deploy/deploy.sh:ro
@@ -34,3 +36,6 @@ services:
networks:
traefik-net:
external: true
volumes:
momo_data_storage:
+1 -4
View File
@@ -10,10 +10,7 @@ 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
# 업로드 저장은 named volume(momo_data_storage)으로 이전됨 — 호스트 디렉토리 prep 불필요
echo "[$(date)] docker compose up --build"
docker compose -f docker-compose.prod.yml up -d --build