Skip to content

Commit 6a328d4

Browse files
committed
chore: ci-cd 구현
1 parent 8f9ac13 commit 6a328d4

File tree

2 files changed

+85
-0
lines changed

2 files changed

+85
-0
lines changed

.github/workflows/CI-CD.yaml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: dpbr Dev Client CI/CD Workflows
2+
3+
on:
4+
push:
5+
branches: [ "develop" ]
6+
7+
jobs:
8+
deploy:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Checkout Code
13+
uses: actions/checkout@v3
14+
15+
- name: Set up Node.js
16+
uses: actions/setup-node@v3
17+
with:
18+
node-version: '18'
19+
20+
- name: Install Dependencies
21+
run: npm install
22+
23+
- name: Build Project
24+
run: npm run build
25+
26+
- name: Docker Image Build
27+
uses: docker/build-push-action@v5
28+
with:
29+
context: .
30+
dockerfile: Dockerfile
31+
push: false
32+
tags: ${{secrets.DOCKER_USERNAME}}/dpbrfe:latest
33+
34+
- name: Docker Login
35+
uses: docker/login-action@v3
36+
with:
37+
username: ${{secrets.DOCKER_USERNAME}}
38+
password: ${{secrets.DOCKER_ACCESS_TOKEN}}
39+
40+
- name: Docker Push
41+
uses: docker/build-push-action@v5
42+
with:
43+
context: .
44+
dockerfile: Dockerfile
45+
push: true
46+
tags: ${{secrets.DOCKER_USERNAME}}/dpbrfe:latest
47+
48+
- name: Docker Deploy
49+
uses: appleboy/ssh-action@master
50+
with:
51+
host: ${{secrets.HOST}}
52+
username: ubuntu
53+
key: ${{secrets.PEM_KEY}}
54+
script: |
55+
sudo docker pull ${{secrets.DOCKER_USERNAME}}/dpbrfe:latest
56+
57+
EXISTING_CONTAINER_ID=$(sudo docker ps -q -f "publish=3000" -f "status=running")
58+
if [ ! -z "$EXISTING_CONTAINER_ID" ]; then
59+
sudo docker stop $EXISTING_CONTAINER_ID
60+
sudo docker rm $EXISTING_CONTAINER_ID
61+
fi
62+
63+
EXISTING_CONTAINER_ID=$(sudo docker ps -q -f "publish=3000" -f "status=exited")
64+
if [ ! -z "$EXISTING_CONTAINER_ID" ]; then
65+
sudo docker rm $EXISTING_CONTAINER_ID
66+
fi
67+
68+
sudo docker rm $(sudo docker ps --filter 'status=exited' -a -q)
69+
sudo docker run -d --name dpbr -p 3000:3000 --net ${{secrets.DOCKER_NETWORK}} ${{secrets.DOCKER_USERNAME}}/dpbrfe:latest
70+
sudo docker image prune -a -f

Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM node:18
2+
3+
RUN ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
4+
5+
WORKDIR /app
6+
7+
COPY package*.json ./
8+
9+
RUN npm install
10+
11+
COPY . .
12+
13+
EXPOSE 3000
14+
15+
CMD ["npm", "start"]

0 commit comments

Comments
 (0)