diff --git a/page/Dockerfile b/page/Dockerfile new file mode 100644 index 0000000..e91008f --- /dev/null +++ b/page/Dockerfile @@ -0,0 +1,21 @@ +# music_bot_v2 대시보드(page/) — Next.js 16 +FROM node:20-alpine +WORKDIR /app + +COPY package*.json ./ +RUN npm install + +COPY . . + +# next build 시 라우트 모듈 평가 단계에서 env 미설정이면 throw 되므로, 빌드용 더미 env를 넣는다. +# (실제 값은 런타임에 compose의 environment로 주입 — 아래 값은 빌드 통과용 placeholder) +ENV DISCORD_CLIENT_ID=build \ + DISCORD_CLIENT_SECRET=build \ + NEXTAUTH_SECRET=build \ + NEXTAUTH_URL=http://localhost:3000 \ + REDIS_HOST=127.0.0.1 \ + REDIS_PORT=6379 +RUN npm run build + +EXPOSE 3000 +CMD ["npm", "run", "start"] diff --git a/page/docker-compose.example.yml b/page/docker-compose.example.yml new file mode 100644 index 0000000..b7f0379 --- /dev/null +++ b/page/docker-compose.example.yml @@ -0,0 +1,21 @@ +# music_bot_v2 대시보드(page/) 배포 예시. +# 운영 .5 호스트에서는 /root/bot/ 아래에 이 내용을 두고 `docker compose -f ... up -d --build` 로 띄운다. +# +# ⚠️ 로그인(Discord OAuth) 전제조건: +# Discord 개발자 포털 → music_bot 앱(APPID 1412338882934079498) → OAuth2 → Redirects 에 +# "/api/auth/callback/discord" 를 반드시 등록해야 로그인이 된다. +# (테스트 포트로 띄우면 예: http://192.168.10.5:2960/api/auth/callback/discord) +services: + music_site_test: + build: ./music_bot_v2/page # (테스트 시엔 page-improvements 브랜치 체크아웃 상태) + container_name: music_site_test + restart: always + ports: + - "2960:3000" # 테스트용 포트(다른 사이트와 겹치지 않게) + environment: + - DISCORD_CLIENT_ID=1412338882934079498 + - DISCORD_CLIENT_SECRET= + - NEXTAUTH_SECRET= + - NEXTAUTH_URL=http://192.168.10.5:2960 + - REDIS_HOST=192.168.10.7 # 운영 봇과 같은 Redis(실봇 제어·상태 테스트). 격리 원하면 별도 Redis. + - REDIS_PORT=6379