Skip to content

Commit daf48cc

Browse files
authored
Merge pull request #9 from blaybus-piro/feat#8
feat(#8) Github Actions CI/CD 구현
2 parents 4647bce + 9673f7b commit daf48cc

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

.github/workflows/deploy.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: blaybus CI/CD
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build-and-deploy:
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
# (1) 깃 체크아웃
14+
- name: Check out repository
15+
uses: actions/checkout@v2
16+
17+
# (2) Docker 이미지 빌드
18+
- name: Build Docker Image
19+
run: |
20+
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPO_NAME }}:latest .
21+
22+
# (3) DockerHub 로그인
23+
- name: DockerHub Login
24+
run: |
25+
echo "${{ secrets.DOCKERHUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin
26+
27+
# (4) Docker 이미지 푸시
28+
- name: Push Docker Image
29+
run: |
30+
docker push ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPO_NAME }}:latest
31+
32+
# (5) SSH로 서버 접속 후 컨테이너 실행
33+
- name: Deploy to Server
34+
uses: appleboy/ssh-action@master
35+
with:
36+
host: ${{ secrets.SERVER_HOST }}
37+
username: ${{ secrets.SERVER_USERNAME }}
38+
key: ${{ secrets.SERVER_SSH_KEY }}
39+
script: |
40+
# 이미 돌아가는 컨테이너가 있다면 중단/제거
41+
docker stop ${{ secrets.DOCKERHUB_REPO_NAME }} || true
42+
docker rm ${{ secrets.DOCKERHUB_REPO_NAME }} || true
43+
44+
# 최신 이미지 pull
45+
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPO_NAME }}:latest
46+
47+
# Docker-Compose 실행
48+
docker-compose up -d

0 commit comments

Comments
 (0)