diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..3d5ed1b --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,3 @@ +node_modules +.git +*.log diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..476e057 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,7 @@ +FROM node:22-alpine +WORKDIR /app +COPY package*.json ./ +RUN npm ci --omit=dev +COPY . . +EXPOSE 3000 +CMD ["npm", "start"] diff --git a/docker-compose.yml b/docker-compose.yml index 6f10ec0..b0511ce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,36 +1,26 @@ services: frontend: + build: ./frontend container_name: maplestory-frontend - image: node:22-alpine - working_dir: /app - volumes: - - ./frontend:/app - - frontend_modules:/app/node_modules - command: sh -c "npm install --legacy-peer-deps && npm run dev" labels: - "com.centurylinklabs.watchtower.enable=false" networks: - caddy + restart: unless-stopped backend: + build: ./backend container_name: maplestory-backend - image: node:22-alpine - working_dir: /app - volumes: - - ./backend:/app - - backend_modules:/app/node_modules - command: sh -c "npm install && npm run dev" env_file: .env + environment: + - NODE_ENV=production labels: - "com.centurylinklabs.watchtower.enable=false" networks: - caddy - db - app - -volumes: - frontend_modules: - backend_modules: + restart: unless-stopped networks: caddy: diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..3be2309 --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,4 @@ +node_modules +dist +.git +*.log diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..25de706 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,15 @@ +# 빌드 단계 +FROM node:22-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm ci --include=dev --legacy-peer-deps +COPY . . +RUN npm run build + +# 정적 파일 서빙 단계 +FROM node:22-alpine +WORKDIR /app +RUN npm install -g serve +COPY --from=builder /app/dist ./dist +EXPOSE 5173 +CMD ["serve", "-s", "dist", "-l", "5173"]