Skip to content

Commit b358ec4

Browse files
authored
Merge pull request #100 from MBTips/dev
3차 배포 Test (Dev -> Main)
2 parents 926afbe + dd376c6 commit b358ec4

File tree

5 files changed

+53
-5
lines changed

5 files changed

+53
-5
lines changed

.github/workflows/ci.yml

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ name: 빌드 자동화
33
on:
44
push:
55
branches:
6-
- dev
6+
- main
7+
- feat/cicd
78

89
jobs:
910
build:
@@ -13,13 +14,36 @@ jobs:
1314
- name: Checkout code
1415
uses: actions/checkout@v2
1516

16-
- name: Set up Node.js (또는 다른 언어 환경)
17+
- name: Set up Node.js (언어 환경)
1718
uses: actions/setup-node@v2
1819
with:
1920
node-version: '20'
2021

2122
- name: Install dependencies
22-
run: npm install
23+
run: |
24+
npm install
25+
npm install tailwindcss@latest postcss@latest autoprefixer@latest
26+
npm install --save-dev @types/node
27+
2328
2429
- name: Run build
25-
run: npm run build # 또는 프로젝트에 맞는 빌드 명령어
30+
run: npm run build --verbose # 프로젝트에 맞는 빌드 명령어
31+
32+
- name: Docker build & push
33+
run: |
34+
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
35+
docker build -t ${{ secrets.DOCKER_USERNAME }}/embitips_front .
36+
docker push ${{ secrets.DOCKER_USERNAME }}/embitips_front
37+
38+
- name: Deploy to GCP
39+
uses: appleboy/ssh-action@master
40+
with:
41+
host: ${{ secrets.HOST_PROD }}
42+
username: ${{ secrets.USERNAME }}
43+
key: ${{ secrets.PRIVATE_KEY }}
44+
script: |
45+
sudo docker stop embitips_front || true
46+
sudo docker rm embitips_front || true
47+
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/embitips_front
48+
sudo docker run -d -p 3000:3000 --name embitips_front ${{ secrets.DOCKER_USERNAME }}/embitips_front
49+
sudo docker image prune -f

Dockerfile

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# 1. Node.js 환경에서 빌드
2+
FROM node:20-alpine
3+
WORKDIR /app
4+
5+
COPY package.json .
6+
RUN npm install
7+
COPY . .
8+
9+
RUN npm run build
10+
11+
EXPOSE 3000
12+
13+
# 🚀 컨테이너를 계속 유지하도록 추가
14+
CMD ["npm", "run", "start"]

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"dev": "vite --mode development",
88
"build": "vite build --mode production",
99
"lint": "eslint .",
10-
"preview": "vite preview"
10+
"preview": "vite preview",
11+
"start": "vite --port 3000"
1112
},
1213
"dependencies": {
1314
"@tailwindcss/vite": "^4.0.3",

src/components/Indicator.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const Indicator = ({ order, setOrder }: IndicatorProps) => {
1010
<div className="flex gap-3">
1111
{[0, 1, 2].map((el) => (
1212
<button
13+
key={el}
1314
onClick={() => setOrder(el)}
1415
className={cls(
1516
"bg-white rounded-full w-2 h-2",

vite.config.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,14 @@ export default defineConfig(({ mode }: { mode: string }) => {
1212

1313
return {
1414
server: {
15+
port: 3000,
16+
host: true, // 외부에서 접속 가능하도록 설정
17+
strictPort: true,
18+
allowedHosts: ["mbtips.kr"],
19+
hmr: {
20+
host: "mbtips.kr",
21+
protocol: "wss"
22+
},
1523
https: isProduction
1624
? undefined // 배포 환경에서는 HTTPS를 비활성화 (Nginx가 처리)
1725
: {

0 commit comments

Comments
 (0)