From 5ecc73ebf5566c412c82eda92cd321c666177486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Thu, 26 Jun 2025 22:31:00 +0900 Subject: [PATCH 01/22] =?UTF-8?q?fix=20:=20workflows/deploy-prod.yml=20?= =?UTF-8?q?=ED=99=9C=EC=84=B1=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/{deploy-prod.yml.disabled => deploy-prod.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{deploy-prod.yml.disabled => deploy-prod.yml} (100%) diff --git a/.github/workflows/deploy-prod.yml.disabled b/.github/workflows/deploy-prod.yml similarity index 100% rename from .github/workflows/deploy-prod.yml.disabled rename to .github/workflows/deploy-prod.yml From a9281b592cd8e8584fe9052a1dda0deeeb85a819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Thu, 26 Jun 2025 22:39:34 +0900 Subject: [PATCH 02/22] =?UTF-8?q?fix=20:=20=ED=94=84=EB=A1=A0=ED=8A=B8=20?= =?UTF-8?q?=EC=9A=B4=EC=98=81=ED=99=98=EA=B2=BD=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=86=8C=EC=85=9C=EB=A1=9C=EA=B7=B8=EC=9D=B8=20redirection=20u?= =?UTF-8?q?rl=EC=9D=84=20=EB=B0=B1=EC=97=94=EB=93=9C=20=EC=9A=B4=EC=98=81?= =?UTF-8?q?=EC=84=9C=EB=B2=84=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/auth/ui/login-modal.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/features/auth/ui/login-modal.tsx b/src/features/auth/ui/login-modal.tsx index ae38e734..3a156ca1 100644 --- a/src/features/auth/ui/login-modal.tsx +++ b/src/features/auth/ui/login-modal.tsx @@ -25,8 +25,8 @@ export default function LoginModal({ // TODO : 실제 백엔드에서 제공하는 URL로 교체필요 const NAVER_LOGIN_URL = ''; - const KAKAO_LOGIN_URL = `https://kauth.kakao.com/oauth/authorize?client_id=3194796599a4325c0223d154319351a4&redirect_uri=https://test-api.zeroone.it.kr/api/v1/auth/kakao/redirect-uri&response_type=code&state=${state}`; - const GOOGLE_LOGIN_URL = `https://accounts.google.com/o/oauth2/v2/auth?scope=openid%20profile&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://test-api.zeroone.it.kr/api/v1/auth/google/redirect-uri&client_id=616205933420-b45d510q23togkaqo069j8igmsjhp9v0.apps.googleusercontent.com&state=${state}`; + const KAKAO_LOGIN_URL = `https://kauth.kakao.com/oauth/authorize?client_id=3194796599a4325c0223d154319351a4&redirect_uri=https://api.zeroone.it.kr/api/v1/auth/kakao/redirect-uri&response_type=code&state=${state}`; + const GOOGLE_LOGIN_URL = `https://accounts.google.com/o/oauth2/v2/auth?scope=openid%20profile&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://api.zeroone.it.kr/api/v1/auth/google/redirect-uri&client_id=616205933420-b45d510q23togkaqo069j8igmsjhp9v0.apps.googleusercontent.com&state=${state}`; return ( From 5bbf804e74526bdf4f293c53afaf76508b0bf43c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 00:40:43 +0900 Subject: [PATCH 03/22] fix : update deploy-prod.yml secret key --- .github/workflows/deploy-prod.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index e65f3685..9489a5a6 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -16,14 +16,14 @@ jobs: - name: Setup SSH run: | mkdir -p ~/.ssh - echo "${{ secrets.LIGHTSAIL_SSH_KEY }}" > ~/.ssh/id_ed25519 + echo "${{ secrets.LIGHTSAIL_PROD_SSH_KEY }}" > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 - ssh-keyscan -H ${{ secrets.LIGHTSAIL_HOST }} >> ~/.ssh/known_hosts + ssh-keyscan -H ${{ secrets.LIGHTSAIL_PROD_HOST }} >> ~/.ssh/known_hosts echo "SSH 설정 완료" - name: Deploy to server run: | - ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_USER }}@${{ secrets.LIGHTSAIL_HOST }} << 'EOF' + ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << 'EOF' cd ~/study-platform-client-prod git fetch origin From a1011b6a96b300f2bb4a868dc7f31020e31d1de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 01:04:45 +0900 Subject: [PATCH 04/22] =?UTF-8?q?feat=20:=20=EC=9A=B4=EC=98=81=ED=99=98?= =?UTF-8?q?=EA=B2=BD=20=EB=B0=B0=ED=8F=AC=EB=B0=A9=EC=8B=9D=EC=9D=84=20?= =?UTF-8?q?=EB=8F=84=EC=BB=A4=20=EA=B8=B0=EB=B0=98=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 7 ++++--- Dockerfile | 26 ++++++++++++++++++++++++++ docker-compose.yml | 15 +++++++++++++++ 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 9489a5a6..33f7c146 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -35,8 +35,9 @@ jobs: echo "빌드 진행 중" yarn build - pm2 delete front-server-prod || true - pm2 start ecosystem.config.js - + echo "도커 컴포즈 재시작" + docker-compose down || true + docker-compose up -d --build + echo "운영 서버 배포 완료" EOF diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..90b01606 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +# 운영환경(main branch)에서 사용하는 Dockerfile + +# 1단계: build +FROM node:18-alpine AS builder +WORKDIR /app + +COPY . . + +RUN yarn install && yarn build + +# 2단계: production +FROM node:18-alpine AS runner +WORKDIR /app + +ENV NODE_ENV=production + +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public +COPY --from=builder /app/package.json ./package.json +COPY --from=builder /app/yarn.lock ./yarn.lock + +RUN yarn install --production + +EXPOSE 3000 + +CMD ["yarn", "start"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..e74237d5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +# 운영환경(main branch)에서 사용하는 docker-compose.yml + +version: '3.8' + +services: + frontend: + build: + context: . + dockerfile: Dockerfile + ports: + - '3000:3000' + environment: + - NODE_ENV=production + - NEXT_PUBLIC_API_URL=https://api.zeroone.it.kr + restart: unless-stopped From eb292c4655e4587fa89373d99b245b6d7aba64c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 01:35:37 +0900 Subject: [PATCH 05/22] =?UTF-8?q?fix=20:=20docker-compose=20=EB=A5=BC=20do?= =?UTF-8?q?cker=20compose=20=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 33f7c146..42226157 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -36,8 +36,8 @@ jobs: yarn build echo "도커 컴포즈 재시작" - docker-compose down || true - docker-compose up -d --build - + docker compose down || true + docker compose up -d --build + echo "운영 서버 배포 완료" EOF From e0e1e61fc509df699a0c0668442652e81bfe88ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 01:53:24 +0900 Subject: [PATCH 06/22] =?UTF-8?q?fix(deploy-prod.yml)=20:=20docker=20?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=A7=81=EC=A0=91=20=EB=B9=8C=EB=93=9C?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD=20=EB=B0=8F=20?= =?UTF-8?q?=EB=94=94=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 42226157..9a1134c3 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -24,16 +24,20 @@ jobs: - name: Deploy to server run: | ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << 'EOF' + + # 디렉토리 없으면 생성 + if [ ! -d "$HOME/study-platform-client-prod" ]; then + mkdir -p "$HOME/study-platform-client-prod" + echo "디렉토리 생성 완료" + fi + cd ~/study-platform-client-prod git fetch origin git checkout main git pull origin main - echo "패키지 설치 중" - yarn install - echo "빌드 진행 중" - yarn build + # 도커로 패키지 설치와 빌드 진행 echo "도커 컴포즈 재시작" docker compose down || true From e301f5d56a6d94899ea56ce96d26047cdf1322e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 01:58:29 +0900 Subject: [PATCH 07/22] =?UTF-8?q?fix(deploy-prod.yml)=20:=20git=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=EC=86=8C=EA=B0=80=20=EC=97=86=EC=9C=BC?= =?UTF-8?q?=EB=A9=B4=20clone=20=ED=95=98=EB=8A=94=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A6=BD=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 9a1134c3..fbce06d1 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -33,6 +33,16 @@ jobs: cd ~/study-platform-client-prod + # git 저장소 없으면 clone, 있으면 fetch + reset (덮어쓰기) + if [ ! -d ".git" ]; then + git clone https://github.com/your/repo.git . + echo "Git clone 완료" + else + git fetch origin + git reset --hard origin/main + echo "Git fetch & reset 완료" + fi + git fetch origin git checkout main git pull origin main From dbca44004ef4d0fd18212287ee2352862401642a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 01:59:31 +0900 Subject: [PATCH 08/22] =?UTF-8?q?chore(deploy-prod.yml)=20:=20=EC=8B=A4?= =?UTF-8?q?=EC=A0=9C=20=EC=BD=94=EB=93=9C=EC=A3=BC=EC=86=8C=20=EA=B8=B0?= =?UTF-8?q?=EC=9E=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index fbce06d1..db1fda64 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -35,7 +35,7 @@ jobs: # git 저장소 없으면 clone, 있으면 fetch + reset (덮어쓰기) if [ ! -d ".git" ]; then - git clone https://github.com/your/repo.git . + git clone https://github.com/code-zero-to-one/study-platform-client.git . echo "Git clone 완료" else git fetch origin From 5ef6b2df245022e324375aa828735b27c4b4c70e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 02:03:33 +0900 Subject: [PATCH 09/22] =?UTF-8?q?fix(deploy-prod.yml)=20:=20clone=20?= =?UTF-8?q?=EB=B0=A9=EC=8B=9D=EC=9D=84=20https=20=EC=97=90=EC=84=9C=20SSH?= =?UTF-8?q?=20=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 2 +- Dockerfile | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index db1fda64..73b65e62 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -35,7 +35,7 @@ jobs: # git 저장소 없으면 clone, 있으면 fetch + reset (덮어쓰기) if [ ! -d ".git" ]; then - git clone https://github.com/code-zero-to-one/study-platform-client.git . + git clone git@github.com:code-zero-to-one/study-platform-client.git . echo "Git clone 완료" else git fetch origin diff --git a/Dockerfile b/Dockerfile index 90b01606..390039e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,8 @@ COPY --from=builder /app/public ./public COPY --from=builder /app/package.json ./package.json COPY --from=builder /app/yarn.lock ./yarn.lock -RUN yarn install --production +# devDependencies는 설치하지 않고 dependencies만 설치 +RUN yarn install --production EXPOSE 3000 From c67a4b014f1d3ffbadb5d2212308f389171e6ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 02:07:20 +0900 Subject: [PATCH 10/22] =?UTF-8?q?chore(deploy-prod.yml)=20:=20=EB=8F=84?= =?UTF-8?q?=EC=BB=A4=EC=BB=B4=ED=8F=AC=EC=A6=88=EC=8B=9C=20sudo=20?= =?UTF-8?q?=EB=AA=85=EB=A0=B9=EC=96=B4=EB=A1=9C=20=EC=8B=A4=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 73b65e62..9f87063d 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -26,12 +26,12 @@ jobs: ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << 'EOF' # 디렉토리 없으면 생성 - if [ ! -d "$HOME/study-platform-client-prod" ]; then - mkdir -p "$HOME/study-platform-client-prod" + if [ ! -d "$HOME/front/study-platform-client-prod" ]; then + mkdir -p "$HOME/front/study-platform-client-prod" echo "디렉토리 생성 완료" fi - cd ~/study-platform-client-prod + cd ~/front/study-platform-client-prod # git 저장소 없으면 clone, 있으면 fetch + reset (덮어쓰기) if [ ! -d ".git" ]; then @@ -50,8 +50,8 @@ jobs: # 도커로 패키지 설치와 빌드 진행 echo "도커 컴포즈 재시작" - docker compose down || true - docker compose up -d --build + sudo docker compose down || true + sudo docker compose up -d --build echo "운영 서버 배포 완료" EOF From 8bc2a40399050a9f0e3e65faeb055b04804a7c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 02:20:10 +0900 Subject: [PATCH 11/22] =?UTF-8?q?chore(docker-compose.yml)=20:=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=ED=99=98=EA=B2=BD=EB=B3=80?= =?UTF-8?q?=EC=88=98=20NODE=5FENV=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index e74237d5..353f2cec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,6 +10,6 @@ services: ports: - '3000:3000' environment: - - NODE_ENV=production + # - NODE_ENV=production - NEXT_PUBLIC_API_URL=https://api.zeroone.it.kr restart: unless-stopped From 926f1cde867ec22ff67b7832bed1fbda0ab2262e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 02:44:43 +0900 Subject: [PATCH 12/22] =?UTF-8?q?chore(docker-compose.yml)=20:=20=ED=99=98?= =?UTF-8?q?=EA=B2=BD=EB=B3=80=EC=88=98=20=EC=9D=B4=EB=A6=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 353f2cec..17f7ef75 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,5 +11,5 @@ services: - '3000:3000' environment: # - NODE_ENV=production - - NEXT_PUBLIC_API_URL=https://api.zeroone.it.kr - restart: unless-stopped + - NEXT_PUBLIC_API_BASE_URL=https://api.zeroone.it.kr + restart: unless-stopped \ No newline at end of file From 7274598d9ae8f3b66b233499d3bac041100cb299 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 02:48:49 +0900 Subject: [PATCH 13/22] =?UTF-8?q?fix=20:=20=EC=86=8C=EC=85=9C=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=9D=B8=20redirection=20URL=20=EC=9D=84=20NEXT=5FPUB?= =?UTF-8?q?LIC=5FAPI=5FBASE=5FURL=20=EC=9C=BC=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EC=88=98=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/features/auth/ui/login-modal.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/features/auth/ui/login-modal.tsx b/src/features/auth/ui/login-modal.tsx index 3a156ca1..9b1fd99e 100644 --- a/src/features/auth/ui/login-modal.tsx +++ b/src/features/auth/ui/login-modal.tsx @@ -25,8 +25,8 @@ export default function LoginModal({ // TODO : 실제 백엔드에서 제공하는 URL로 교체필요 const NAVER_LOGIN_URL = ''; - const KAKAO_LOGIN_URL = `https://kauth.kakao.com/oauth/authorize?client_id=3194796599a4325c0223d154319351a4&redirect_uri=https://api.zeroone.it.kr/api/v1/auth/kakao/redirect-uri&response_type=code&state=${state}`; - const GOOGLE_LOGIN_URL = `https://accounts.google.com/o/oauth2/v2/auth?scope=openid%20profile&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=https://api.zeroone.it.kr/api/v1/auth/google/redirect-uri&client_id=616205933420-b45d510q23togkaqo069j8igmsjhp9v0.apps.googleusercontent.com&state=${state}`; + const KAKAO_LOGIN_URL = `https://kauth.kakao.com/oauth/authorize?client_id=3194796599a4325c0223d154319351a4&redirect_uri=${process.env.NEXT_PUBLIC_API_BASE_URL}/api/v1/auth/kakao/redirect-uri&response_type=code&state=${state}`; + const GOOGLE_LOGIN_URL = `https://accounts.google.com/o/oauth2/v2/auth?scope=openid%20profile&access_type=offline&prompt=consent&include_granted_scopes=true&response_type=code&redirect_uri=${process.env.NEXT_PUBLIC_API_BASE_URL}/api/v1/auth/google/redirect-uri&client_id=616205933420-b45d510q23togkaqo069j8igmsjhp9v0.apps.googleusercontent.com&state=${state}`; return ( From 19ad73aa1ceb859d1d311ebb22416aa9d84b5867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 02:54:32 +0900 Subject: [PATCH 14/22] =?UTF-8?q?chore(deploy-prod.yml)=20=EC=95=88?= =?UTF-8?q?=EC=93=B0=EB=8A=94=20=EB=8F=84=EC=BB=A4=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=BB=A8=ED=85=8C=EC=9D=B4=EB=84=88=20=EC=A0=95?= =?UTF-8?q?=EB=A6=AC=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 9f87063d..d14d4a43 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -25,6 +25,11 @@ jobs: run: | ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << 'EOF' + # 용량 확보를 위해 도커 컨테이너, 이미지 먼저 정리 + echo "도커 컨테이너, 이미지 정리 중..." + sudo docker container prune -f + sudo docker image prune -af + # 디렉토리 없으면 생성 if [ ! -d "$HOME/front/study-platform-client-prod" ]; then mkdir -p "$HOME/front/study-platform-client-prod" @@ -47,8 +52,6 @@ jobs: git checkout main git pull origin main - # 도커로 패키지 설치와 빌드 진행 - echo "도커 컴포즈 재시작" sudo docker compose down || true sudo docker compose up -d --build From e8f0d4f2eb450a68c1f367743f506d7f8b77d4a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 03:08:33 +0900 Subject: [PATCH 15/22] =?UTF-8?q?chore(deploy-prod.yml)=20:=20=EB=8F=84?= =?UTF-8?q?=EC=BB=A4=20=EC=B2=AD=EC=86=8C=EB=A5=BC=20=EB=8D=94=20=EB=B9=A1?= =?UTF-8?q?=EC=84=B8=EA=B2=8C=20=EC=8B=9C=ED=82=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index d14d4a43..dd345107 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -26,9 +26,8 @@ jobs: ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << 'EOF' # 용량 확보를 위해 도커 컨테이너, 이미지 먼저 정리 - echo "도커 컨테이너, 이미지 정리 중..." - sudo docker container prune -f - sudo docker image prune -af + echo "사용하지 않는 컨테이너, 이미지, 네트워크 정리 중 (볼륨제외)..." + sudo docker system prune -a -f # 디렉토리 없으면 생성 if [ ! -d "$HOME/front/study-platform-client-prod" ]; then From eb3e241a447106ef53e4f527f94e952ce5aff2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 03:42:00 +0900 Subject: [PATCH 16/22] =?UTF-8?q?fix=20:=20=EC=9A=B4=EC=98=81=20env=20?= =?UTF-8?q?=EB=A5=BC=20=EB=8F=84=EC=BB=A4=EC=BB=B4=ED=8F=AC=EC=A6=88=20?= =?UTF-8?q?=EC=A3=BC=EC=9E=85=EC=9D=B4=20=EC=95=84=EB=8B=8C=20=EC=8B=9C?= =?UTF-8?q?=ED=81=AC=EB=A6=BF=ED=82=A4=20=ED=86=B5=ED=95=B4=20=20=EB=A7=8C?= =?UTF-8?q?=EB=93=9C=EB=8A=94=20=EC=AA=BD=EC=9C=BC=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 9 ++++++++- docker-compose.yml | 3 --- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index dd345107..1378159e 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -51,8 +51,15 @@ jobs: git checkout main git pull origin main + echo ".env 파일 생성" + cat < .env + NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_PROD_BASE_URL }} + NEXT_PUBLIC_GTM_ID=${{ secrets.NEXT_PUBLIC_GTM_ID }} + EOT + echo "도커 컴포즈 재시작" - sudo docker compose down || true + sudo docker stop study-platform-client-prod-frontend-1 + sudo docker rm study-platform-client-prod-frontend-1 sudo docker compose up -d --build echo "운영 서버 배포 완료" diff --git a/docker-compose.yml b/docker-compose.yml index 17f7ef75..e00dadce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,4 @@ services: dockerfile: Dockerfile ports: - '3000:3000' - environment: - # - NODE_ENV=production - - NEXT_PUBLIC_API_BASE_URL=https://api.zeroone.it.kr restart: unless-stopped \ No newline at end of file From 51d2ae42a8bd2df7bea67e490bbba1d2b477017a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 04:04:27 +0900 Subject: [PATCH 17/22] =?UTF-8?q?fix(deploy-prod.yml)=20:=20env=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-prod.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 1378159e..24c5d7bf 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -52,10 +52,8 @@ jobs: git pull origin main echo ".env 파일 생성" - cat < .env - NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_PROD_BASE_URL }} - NEXT_PUBLIC_GTM_ID=${{ secrets.NEXT_PUBLIC_GTM_ID }} - EOT + echo 'NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_PROD_BASE_URL }}' > .env + echo 'NEXT_PUBLIC_GTM_ID=${{ secrets.NEXT_PUBLIC_GTM_ID }}'' >> .env echo "도커 컴포즈 재시작" sudo docker stop study-platform-client-prod-frontend-1 From 2611d0911eee5ed42c248c1bcd019189755f526e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 04:10:27 +0900 Subject: [PATCH 18/22] chore(deploy-prod.yml) : EOF --- .github/workflows/deploy-prod.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 24c5d7bf..a1738a65 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -23,7 +23,7 @@ jobs: - name: Deploy to server run: | - ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << 'EOF' + ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_PROD_USER }}@${{ secrets.LIGHTSAIL_PROD_HOST }} << EOF # 용량 확보를 위해 도커 컨테이너, 이미지 먼저 정리 echo "사용하지 않는 컨테이너, 이미지, 네트워크 정리 중 (볼륨제외)..." @@ -52,8 +52,8 @@ jobs: git pull origin main echo ".env 파일 생성" - echo 'NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_PROD_BASE_URL }}' > .env - echo 'NEXT_PUBLIC_GTM_ID=${{ secrets.NEXT_PUBLIC_GTM_ID }}'' >> .env + echo "NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_PROD_BASE_URL }}" > .env + echo "NEXT_PUBLIC_GTM_ID=${{ secrets.NEXT_PUBLIC_GTM_ID }}" >> .env echo "도커 컴포즈 재시작" sudo docker stop study-platform-client-prod-frontend-1 From 96e19248bdd5c8017f2d65acd9e07540b03637d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 04:22:45 +0900 Subject: [PATCH 19/22] =?UTF-8?q?fix(docker-compose.yml)=20env=5Ffile=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index e00dadce..cc9783e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,4 +9,6 @@ services: dockerfile: Dockerfile ports: - '3000:3000' + env_file: + - .env restart: unless-stopped \ No newline at end of file From 1a79a0bbb99c42c962aae95ce26b2cee15ff9c95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 04:28:08 +0900 Subject: [PATCH 20/22] =?UTF-8?q?fix(Dockerfile)=20:=20=EB=B9=8C=EB=93=9C?= =?UTF-8?q?=EC=8B=9C=EC=A0=90=EC=97=90=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 +++ docker-compose.yml | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 390039e7..0a727e21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,9 @@ WORKDIR /app COPY . . +# 빌드시점에 .env 파일 복사 +COPY .env .env + RUN yarn install && yarn build # 2단계: production diff --git a/docker-compose.yml b/docker-compose.yml index cc9783e1..e00dadce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,6 +9,4 @@ services: dockerfile: Dockerfile ports: - '3000:3000' - env_file: - - .env restart: unless-stopped \ No newline at end of file From df060138d582519899043b9588f6c1ffbbc80c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 04:51:00 +0900 Subject: [PATCH 21/22] =?UTF-8?q?fix(Dockerfile)=20:=20=EB=9F=B0=ED=83=80?= =?UTF-8?q?=EC=9E=84=20=EC=8B=9C=EC=A0=90=EC=97=90=EB=8F=84=20env=20?= =?UTF-8?q?=EB=B3=80=EC=88=98=20=EB=84=A3=EC=96=B4=EB=B3=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0a727e21..512be29b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR /app COPY . . -# 빌드시점에 .env 파일 복사 +# 빌드시점에 .env 파일 복사 COPY .env .env RUN yarn install && yarn build @@ -22,6 +22,9 @@ COPY --from=builder /app/public ./public COPY --from=builder /app/package.json ./package.json COPY --from=builder /app/yarn.lock ./yarn.lock +# 런타임시점에도 .env 파일 복사 +COPY --from=builder /app/.env .env + # devDependencies는 설치하지 않고 dependencies만 설치 RUN yarn install --production From 06650a3407c3a4c370ea46753eb5070b29561ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=84=B1=EC=A7=84?= Date: Fri, 27 Jun 2025 05:13:27 +0900 Subject: [PATCH 22/22] =?UTF-8?q?fix(docker-compose.yml)=20:=20=ED=98=B9?= =?UTF-8?q?=EC=8B=9C=EB=AA=B0=EB=9D=BC=20=EB=8F=84=EC=BB=A4=EC=BB=B4?= =?UTF-8?q?=ED=8F=AC=EC=A6=88=20=20=EB=9F=B0=ED=83=80=EC=9E=84=20=EC=8B=9C?= =?UTF-8?q?=EC=A0=90=EC=97=90=EB=8F=84=20env=20=EB=B3=80=EC=88=98=20?= =?UTF-8?q?=EB=84=A3=EC=96=B4=EB=B3=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index e00dadce..cc9783e1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,4 +9,6 @@ services: dockerfile: Dockerfile ports: - '3000:3000' + env_file: + - .env restart: unless-stopped \ No newline at end of file