From 221c31bfa1866b982ff15b4f6c38b901a1e1f4c6 Mon Sep 17 00:00:00 2001 From: tkrmagid Date: Sat, 12 Sep 2026 22:56:58 +0900 Subject: [PATCH] =?UTF-8?q?chore(page):=20=EB=8C=80=EC=8B=9C=EB=B3=B4?= =?UTF-8?q?=EB=93=9C=20=EB=B0=B0=ED=8F=AC=20=EC=8A=A4=EC=BA=90=ED=8F=B4?= =?UTF-8?q?=EB=94=A9=20=EC=B6=94=EA=B0=80(Dockerfile=20+=20compose=20?= =?UTF-8?q?=EC=98=88=EC=8B=9C,=20OAuth=20redirect=20=EC=95=88=EB=82=B4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- page/Dockerfile | 21 +++++++++++++++++++++ page/docker-compose.example.yml | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 page/Dockerfile create mode 100644 page/docker-compose.example.yml 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