Skip to content

Commit 4ebdb02

Browse files
조성진조성진
authored andcommitted
Merge branch 'feat/landing-page' into develop
2 parents 43f56ca + 3399cdf commit 4ebdb02

File tree

4 files changed

+158
-45
lines changed

4 files changed

+158
-45
lines changed

.github/workflows/deploy-dev.yml

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# 도커 허브에 이미지 push 후 서버에 배포하는 방식 (25.10.30 이후)
2+
13
name: Front Test Server (Develop)
24

35
on:
@@ -6,13 +8,34 @@ on:
68
- develop # develop 브랜치에 push가 발생하면 실행
79

810
jobs:
9-
deploy:
11+
build-and-push-image: # 도커 이미지 빌드 및 도커 허브 push
1012
runs-on: ubuntu-latest
1113

1214
steps:
1315
- name: Checkout code
1416
uses: actions/checkout@v3
1517

18+
- name: ENV 파일 생성
19+
run: |
20+
echo "NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_BASE_URL }}" > .env
21+
echo "NEXT_PUBLIC_KAKAO_CLIENT_ID=${{ secrets.NEXT_PUBLIC_KAKAO_CLIENT_ID }}" >> .env
22+
echo "NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_CLIENT_ID }}" >> .env
23+
echo "NEXT_PUBLIC_CLARITY_PROJECT_ID=${{ secrets.NEXT_PUBLIC_CLARITY_PROJECT_ID }}" >> .env
24+
echo "NEXT_PUBLIC_GOOGLE_SHEETS_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_SHEETS_ID }}" >> .env
25+
echo "GOOGLE_SERVICE_ACCOUNT_EMAIL=${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}" >> .env
26+
echo "GOOGLE_PRIVATE_KEY=${{ secrets.GOOGLE_PRIVATE_KEY }}" >> .env
27+
28+
- name: DockerHub 로그인
29+
uses: docker/login-action@v2
30+
with:
31+
username: ${{ secrets.DOCKERHUB_USERNAME }}
32+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
33+
34+
- name: Docker 이미지 빌드 및 push
35+
run: |
36+
docker build -f Dockerfile.dev -t zerooneitkr/frontend:develop .
37+
docker push zerooneitkr/frontend:develop
38+
1639
- name: Setup SSH
1740
run: |
1841
mkdir -p ~/.ssh
@@ -21,49 +44,27 @@ jobs:
2144
ssh-keyscan -H ${{ secrets.LIGHTSAIL_HOST }} >> ~/.ssh/known_hosts
2245
echo "SSH 설정 완료"
2346
24-
- name: Deploy to server
47+
deploy-image-to-server: # 도커 허브 pull 후 서버에 배포
48+
runs-on: ubuntu-latest
49+
needs: build-and-push-image
50+
51+
steps:
2552
run: |
2653
ssh -i ~/.ssh/id_ed25519 ${{ secrets.LIGHTSAIL_USER }}@${{ secrets.LIGHTSAIL_HOST }} << EOF
2754
28-
# 용량 확보를 위해 도커 컨테이너, 이미지 먼저 정리
2955
echo "사용하지 않는 컨테이너, 이미지, 네트워크 정리 중 (볼륨제외)..."
56+
sudo docker stop frontend-dev || true
57+
sudo docker rm frontend-dev || true
3058
sudo docker system prune -a -f
31-
32-
# 디렉토리 없으면 생성
33-
if [ ! -d "/home/ubuntu/front/study-platform-client-dev" ]; then
34-
mkdir -p "/home/ubuntu/front/study-platform-client-dev"
35-
echo "디렉토리 생성 완료"
36-
fi
3759
60+
# 여기다 도커 컴포즈 파일 갖다놓았기 때문임
3861
cd ~/front/study-platform-client-dev
3962
40-
# git 저장소 없으면 clone, 있으면 fetch + reset (덮어쓰기)
41-
if [ ! -d ".git" ]; then
42-
git clone git@github.com:code-zero-to-one/study-platform-client.git .
43-
echo "Git clone 완료"
44-
else
45-
git fetch origin
46-
git reset --hard origin/develop
47-
echo "Git fetch & reset 완료"
48-
fi
49-
50-
git fetch origin
51-
git checkout develop
52-
git pull origin develop
53-
54-
echo ".env 파일 생성"
55-
echo "NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_BASE_URL }}" > .env
56-
echo "NEXT_PUBLIC_KAKAO_CLIENT_ID=${{ secrets.NEXT_PUBLIC_KAKAO_CLIENT_ID }}" >> .env
57-
echo "NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_CLIENT_ID }}" >> .env
58-
echo "NEXT_PUBLIC_CLARITY_PROJECT_ID=${{ secrets.NEXT_PUBLIC_CLARITY_PROJECT_ID }}" >> .env
59-
echo "NEXT_PUBLIC_GOOGLE_SHEETS_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_SHEETS_ID }}" >> .env
60-
echo "GOOGLE_SERVICE_ACCOUNT_EMAIL=${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}" >> .env
61-
echo "GOOGLE_PRIVATE_KEY=${{ secrets.GOOGLE_PRIVATE_KEY }}" >> .env
63+
echo "도커 이미지 pull"
64+
sudo docker pull zerooneitkr/frontend:develop
6265
6366
echo "도커 컴포즈 재시작"
64-
sudo docker stop frontend-dev
65-
sudo docker rm frontend-dev
6667
sudo docker compose -f docker-compose.dev.yml up -d --build
6768
68-
echo "운영 서버 배포 완료"
69+
echo "테스트 서버 배포 완료"
6970
EOF
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# EC2 내부에서 빌드하던 방식 (25.10.30 이전)
2+
13
name: Front Test Server (Develop)
24

35
on:
@@ -30,12 +32,12 @@ jobs:
3032
sudo docker system prune -a -f
3133

3234
# 디렉토리 없으면 생성
33-
if [ ! -d "$HOME/ubuntu/front/study-platform-client-prod" ]; then
34-
mkdir -p "$HOME/ubuntu/front/study-platform-client-prod"
35+
if [ ! -d "/home/ubuntu/front/study-platform-client-dev" ]; then
36+
mkdir -p "/home/ubuntu/front/study-platform-client-dev"
3537
echo "디렉토리 생성 완료"
3638
fi
3739

38-
cd ~/front/study-platform-client-prod
40+
cd ~/front/study-platform-client-dev
3941

4042
# git 저장소 없으면 clone, 있으면 fetch + reset (덮어쓰기)
4143
if [ ! -d ".git" ]; then
@@ -53,14 +55,17 @@ jobs:
5355

5456
echo ".env 파일 생성"
5557
echo "NEXT_PUBLIC_API_BASE_URL=${{ secrets.NEXT_PUBLIC_API_BASE_URL }}" > .env
56-
echo "NEXT_PUBLIC_GTM_ID=${{ secrets.NEXT_PUBLIC_GTM_ID }}" >> .env
5758
echo "NEXT_PUBLIC_KAKAO_CLIENT_ID=${{ secrets.NEXT_PUBLIC_KAKAO_CLIENT_ID }}" >> .env
5859
echo "NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_CLIENT_ID }}" >> .env
60+
echo "NEXT_PUBLIC_CLARITY_PROJECT_ID=${{ secrets.NEXT_PUBLIC_CLARITY_PROJECT_ID }}" >> .env
61+
echo "NEXT_PUBLIC_GOOGLE_SHEETS_ID=${{ secrets.NEXT_PUBLIC_GOOGLE_SHEETS_ID }}" >> .env
62+
echo "GOOGLE_SERVICE_ACCOUNT_EMAIL=${{ secrets.GOOGLE_SERVICE_ACCOUNT_EMAIL }}" >> .env
63+
echo "GOOGLE_PRIVATE_KEY=${{ secrets.GOOGLE_PRIVATE_KEY }}" >> .env
5964

6065
echo "도커 컴포즈 재시작"
61-
sudo docker stop study-platform-client-prod-frontend-1
62-
sudo docker rm study-platform-client-prod-frontend-1
63-
sudo docker compose up -d --build
66+
sudo docker stop frontend-dev
67+
sudo docker rm frontend-dev
68+
sudo docker compose -f docker-compose.dev.yml up -d --build
6469

6570
echo "운영 서버 배포 완료"
66-
EOF
71+
EOF

docker-compose.dev.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ version: '3.8'
55
services:
66
frontend:
77
container_name: frontend-dev
8-
build:
9-
context: .
10-
dockerfile: Dockerfile.dev
8+
image: zerooneitkr/frontend:develop
9+
# 도커허브에서 이미지 받아오니까 빌드과정은 빠짐
10+
# build:
11+
# context: .
12+
# dockerfile: Dockerfile.dev
1113
ports:
1214
- '3000:3000'
1315
env_file:

package-lock.json

Lines changed: 105 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)