From b824c388150149d59c734f87d49b3396e1df9383 Mon Sep 17 00:00:00 2001 From: caadiq Date: Mon, 19 Jan 2026 09:49:27 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=94=84=EB=A1=A0=ED=8A=B8?= =?UTF-8?q?=EC=97=94=EB=93=9C/=EB=B0=B1=EC=97=94=EB=93=9C=20=EC=BB=A8?= =?UTF-8?q?=ED=85=8C=EC=9D=B4=EB=84=88=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - backend/Dockerfile 생성 - frontend/Dockerfile 생성 - docker-compose.yml에 별도 서비스로 분리 - 기존 루트 Dockerfile 삭제 Co-Authored-By: Claude Opus 4.5 --- Dockerfile | 27 --------------------------- backend/Dockerfile | 15 +++++++++++++++ docker-compose.yml | 31 ++++++++++++++++++++++++------- frontend/Dockerfile | 17 +++++++++++++++++ 4 files changed, 56 insertions(+), 34 deletions(-) delete mode 100644 Dockerfile create mode 100644 backend/Dockerfile create mode 100644 frontend/Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b08172a..0000000 --- a/Dockerfile +++ /dev/null @@ -1,27 +0,0 @@ -# ============================================ -# 개발 모드 -# ============================================ -FROM node:20-alpine -WORKDIR /app -RUN apk add --no-cache ffmpeg -CMD ["sh", "-c", "cd /app/backend && npm install && cd /app/frontend && npm install --include=dev && (cd /app/backend && PORT=3000 npm run dev &) && sleep 3 && cd /app/frontend && npm run dev -- --host 0.0.0.0"] - -# ============================================ -# 배포 모드 (사용 시 위 개발 모드를 주석처리) -# ============================================ -# FROM node:20-alpine AS frontend-builder -# WORKDIR /frontend -# COPY frontend/package*.json ./ -# RUN npm install -# COPY frontend/ ./ -# RUN npm run build -# -# FROM node:20-alpine -# WORKDIR /app -# RUN apk add --no-cache ffmpeg -# COPY backend/package*.json ./ -# RUN npm install --production -# COPY backend/ ./ -# COPY --from=frontend-builder /frontend/dist ./dist -# EXPOSE 80 -# CMD ["npm", "start"] diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..fc0969e --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,15 @@ +# 개발 모드 +FROM node:20-alpine +WORKDIR /app +RUN apk add --no-cache ffmpeg +CMD ["sh", "-c", "npm install && npm run dev"] + +# 배포 모드 (사용 시 위 개발 모드를 주석처리) +# FROM node:20-alpine +# WORKDIR /app +# RUN apk add --no-cache ffmpeg +# COPY package*.json ./ +# RUN npm install --production +# COPY . . +# EXPOSE 3000 +# CMD ["npm", "start"] diff --git a/docker-compose.yml b/docker-compose.yml index e71d5af..9d977c1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,15 @@ services: - fromis9-frontend: - build: . - container_name: fromis9-frontend + backend: + build: ./backend + container_name: fromis9-backend labels: - "com.centurylinklabs.watchtower.enable=false" env_file: - .env # 개발 모드 volumes: - - ./backend:/app/backend - - ./frontend:/app/frontend - - backend_modules:/app/backend/node_modules - - frontend_modules:/app/frontend/node_modules + - ./backend:/app + - backend_modules:/app/node_modules # 배포 모드 (사용 시 위 volumes를 주석처리) # volumes: [] networks: @@ -19,6 +17,25 @@ services: - db restart: unless-stopped + frontend: + build: ./frontend + container_name: fromis9-frontend + labels: + - "com.centurylinklabs.watchtower.enable=false" + environment: + - VITE_API_URL=http://backend:3000 + # 개발 모드 + volumes: + - ./frontend:/app + - frontend_modules:/app/node_modules + # 배포 모드 (사용 시 위 volumes를 주석처리) + # volumes: [] + depends_on: + - backend + networks: + - app + restart: unless-stopped + meilisearch: image: getmeili/meilisearch:v1.6 container_name: fromis9-meilisearch diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..4ef7ba7 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,17 @@ +# 개발 모드 +FROM node:20-alpine +WORKDIR /app +CMD ["sh", "-c", "npm install --include=dev && npm run dev -- --host 0.0.0.0"] + +# 배포 모드 (사용 시 위 개발 모드를 주석처리) +# FROM node:20-alpine AS builder +# WORKDIR /app +# COPY package*.json ./ +# RUN npm install +# COPY . . +# RUN npm run build +# +# FROM nginx:alpine +# COPY --from=builder /app/dist /usr/share/nginx/html +# EXPOSE 80 +# CMD ["nginx", "-g", "daemon off;"]