도커 파일 및 스크립트 파일 위치 정리

This commit is contained in:
hyeonsu 2025-08-28 13:44:01 +09:00
parent 58d8fb1dd2
commit e9082d7fef
15 changed files with 64 additions and 230 deletions

View File

@ -23,30 +23,30 @@
```bash
# 전체 서비스 시작 (병렬 빌드 - 가장 빠름!)
./start-all-parallel.sh
./scripts/dev/start-all-parallel.sh
```
### 개별 서비스 시작
```bash
# 백엔드만 시작
./start-backend.sh
./scripts/dev/start-backend.sh
# 프론트엔드만 시작
./start-frontend.sh
./scripts/dev/start-frontend.sh
```
### 개발용 Docker Compose 파일들
- **`docker-compose.backend.mac.yml`** - Mac 개발용 백엔드
- **`docker/dev/docker-compose.backend.mac.yml`** - Mac 개발용 백엔드
- 볼륨 마운트: `./backend-node:/app` (Hot Reload)
- Dockerfile: `backend-node/Dockerfile.dev`
- Dockerfile: `docker/dev/backend.Dockerfile`
- 포트: `8080`
- **`docker-compose.frontend.mac.yml`** - Mac 개발용 프론트엔드
- **`docker/dev/docker-compose.frontend.mac.yml`** - Mac 개발용 프론트엔드
- 볼륨 마운트: `./frontend:/app` (Hot Reload)
- Dockerfile: `frontend/Dockerfile.dev`
- Dockerfile: `docker/dev/frontend.Dockerfile`
- 포트: `3000`
### 개발 환경 특징
@ -152,29 +152,27 @@ docker-compose -f docker-compose.frontend.mac.yml up --build -d
```bash
# Linux 서버에서 실행
./start-all-separated-linux.sh
./scripts/prod/start-all-linux.sh
```
### 개별 서비스 시작 (운영용)
```bash
# 백엔드만 시작 (Linux)
./start-backend-linux.sh
# 프론트엔드만 시작 (Linux)
./start-frontend-linux.sh
# 직접 Docker Compose 사용
docker-compose -f docker/prod/docker-compose.backend.prod.yml up -d
docker-compose -f docker/prod/docker-compose.frontend.prod.yml up -d
```
### 운영용 Docker Compose 파일들
- **`docker-compose.backend.prod.yml`** - 운영용 백엔드
- **`docker/prod/docker-compose.backend.prod.yml`** - 운영용 백엔드
- Dockerfile: `backend-node/Dockerfile` (프로덕션 최적화)
- Dockerfile: `docker/prod/backend.Dockerfile` (프로덕션 최적화)
- 포트: `8080`
- 환경: `NODE_ENV=production`
- **`docker-compose.frontend.prod.yml`** - 운영용 프론트엔드
- Dockerfile: `frontend/Dockerfile` (프로덕션 최적화)
- **`docker/prod/docker-compose.frontend.prod.yml`** - 운영용 프론트엔드
- Dockerfile: `docker/prod/frontend.Dockerfile` (프로덕션 최적화)
- 포트: `3000`
- 환경: 최적화된 빌드

View File

@ -2,8 +2,8 @@ services:
# Node.js 백엔드
backend:
build:
context: ./backend-node
dockerfile: Dockerfile.dev
context: ../../backend-node
dockerfile: ../docker/dev/backend.Dockerfile
container_name: pms-backend-mac
ports:
- "8080:8080"
@ -17,7 +17,7 @@ services:
- CORS_CREDENTIALS=true
- LOG_LEVEL=debug
volumes:
- ./backend-node:/app # 개발 모드: 코드 변경 시 자동 반영
- ../../backend-node:/app # 개발 모드: 코드 변경 시 자동 반영
- /app/node_modules
networks:
- pms-network

View File

@ -2,15 +2,15 @@ services:
# Next.js 프론트엔드만
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.dev
context: ../../frontend
dockerfile: ../docker/dev/frontend.Dockerfile
container_name: pms-frontend-mac
ports:
- "9771:3000"
environment:
- NEXT_PUBLIC_API_URL=http://localhost:8080/api
volumes:
- ./frontend:/app
- ../../frontend:/app
- /app/node_modules
- /app/.next
networks:

View File

@ -2,8 +2,8 @@ services:
# Node.js 백엔드 (운영용)
backend:
build:
context: ./backend-node
dockerfile: Dockerfile # 운영용 Dockerfile
context: ../../backend-node
dockerfile: ../docker/prod/backend.Dockerfile # 운영용 Dockerfile
container_name: pms-backend-prod
ports:
- "8080:8080"

View File

@ -2,8 +2,8 @@ services:
# Next.js 프론트엔드만
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
context: ../../frontend
dockerfile: ../docker/prod/frontend.Dockerfile
args:
- NEXT_PUBLIC_API_URL=http://192.168.0.70:8080/api
container_name: pms-frontend-linux

View File

@ -31,7 +31,7 @@ echo "============================================"
# 백엔드 빌드 (백그라운드)
echo "🔧 백엔드 빌드 시작..."
(
docker-compose -f docker-compose.backend.mac.yml build
docker-compose -f docker/dev/docker-compose.backend.mac.yml build
echo "✅ 백엔드 빌드 완료"
) &
BACKEND_PID=$!
@ -39,7 +39,7 @@ BACKEND_PID=$!
# 프론트엔드 빌드 (백그라운드)
echo "🔧 프론트엔드 빌드 시작..."
(
docker-compose -f docker-compose.frontend.mac.yml build
docker-compose -f docker/dev/docker-compose.frontend.mac.yml build
echo "✅ 프론트엔드 빌드 완료"
) &
FRONTEND_PID=$!
@ -62,17 +62,17 @@ echo "============================================"
SERVICE_START=$(date +%s)
# 기존 컨테이너 정리
docker-compose -f docker-compose.backend.mac.yml down -v 2>/dev/null
docker-compose -f docker-compose.frontend.mac.yml down -v 2>/dev/null
docker-compose -f docker/dev/docker-compose.backend.mac.yml down -v 2>/dev/null
docker-compose -f docker/dev/docker-compose.frontend.mac.yml down -v 2>/dev/null
# 백엔드 시작 (백그라운드)
echo "🚀 백엔드 서비스 시작..."
docker-compose -f docker-compose.backend.mac.yml up -d &
docker-compose -f docker/dev/docker-compose.backend.mac.yml up -d &
BACKEND_START_PID=$!
# 프론트엔드 시작 (백그라운드)
echo "🚀 프론트엔드 서비스 시작..."
docker-compose -f docker-compose.frontend.mac.yml up -d &
docker-compose -f docker/dev/docker-compose.frontend.mac.yml up -d &
FRONTEND_START_PID=$!
# 서비스 시작 완료 대기
@ -97,16 +97,16 @@ echo "[BACKEND] Node.js API: http://localhost:8080/api"
echo "[FRONTEND] Next.js: http://localhost:9771"
echo ""
echo "서비스 상태 확인:"
echo " 백엔드: docker-compose -f docker-compose.backend.mac.yml ps"
echo " 프론트엔드: docker-compose -f docker-compose.frontend.mac.yml ps"
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml ps"
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml ps"
echo ""
echo "로그 확인:"
echo " 백엔드: docker-compose -f docker-compose.backend.mac.yml logs -f"
echo " 프론트엔드: docker-compose -f docker-compose.frontend.mac.yml logs -f"
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml logs -f"
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml logs -f"
echo ""
echo "서비스 중지:"
echo " 백엔드: docker-compose -f docker-compose.backend.mac.yml down"
echo " 프론트엔드: docker-compose -f docker-compose.frontend.mac.yml down"
echo " 백엔드: docker-compose -f docker/dev/docker-compose.backend.mac.yml down"
echo " 프론트엔드: docker-compose -f docker/dev/docker-compose.frontend.mac.yml down"
echo " 전체: ./stop-all.sh"
echo ""
echo "============================================"

12
start-backend.sh → scripts/dev/start-backend.sh Normal file → Executable file
View File

@ -6,11 +6,11 @@ echo "============================================"
echo ""
echo "1. Docker 이미지 빌드 중..."
docker-compose -f docker-compose.backend.mac.yml build
docker-compose -f docker/dev/docker-compose.backend.mac.yml build
echo ""
echo "2. 기존 백엔드 컨테이너 정리 중..."
docker-compose -f docker-compose.backend.mac.yml down -v
docker-compose -f docker/dev/docker-compose.backend.mac.yml down -v
echo ""
echo "3. Docker 네트워크 생성 중..."
@ -18,7 +18,7 @@ docker network create pms-network 2>/dev/null || echo "네트워크가 이미
echo ""
echo "4. 백엔드 컨테이너 시작 중..."
docker-compose -f docker-compose.backend.mac.yml up -d
docker-compose -f docker/dev/docker-compose.backend.mac.yml up -d
echo ""
echo "5. 서비스 상태 확인 중..."
@ -32,9 +32,9 @@ echo ""
echo "[DATABASE] PostgreSQL: http://39.117.244.52:11132"
echo "[BACKEND] Node.js API: http://localhost:8080/api"
echo ""
echo "상태 확인: docker-compose -f docker-compose.backend.mac.yml ps"
echo "로그 확인: docker-compose -f docker-compose.backend.mac.yml logs -f"
echo "중지하기: docker-compose -f docker-compose.backend.mac.yml down"
echo "상태 확인: docker-compose -f docker/dev/docker-compose.backend.mac.yml ps"
echo "로그 확인: docker-compose -f docker/dev/docker-compose.backend.mac.yml logs -f"
echo "중지하기: docker-compose -f docker/dev/docker-compose.backend.mac.yml down"
echo ""
echo "============================================"

View File

@ -6,11 +6,11 @@ echo "============================================"
echo ""
echo "1. Docker 이미지 빌드 중..."
docker-compose -f docker-compose.frontend.mac.yml build
docker-compose -f docker/dev/docker-compose.frontend.mac.yml build
echo ""
echo "2. 기존 프론트엔드 컨테이너 정리 중..."
docker-compose -f docker-compose.frontend.mac.yml down -v
docker-compose -f docker/dev/docker-compose.frontend.mac.yml down -v
echo ""
echo "3. Docker 네트워크 생성 중..."
@ -18,7 +18,7 @@ docker network create pms-network 2>/dev/null || echo "네트워크가 이미
echo ""
echo "4. 프론트엔드 컨테이너 시작 중..."
docker-compose -f docker-compose.frontend.mac.yml up -d
docker-compose -f docker/dev/docker-compose.frontend.mac.yml up -d
echo ""
echo "5. 서비스 상태 확인 중..."
@ -33,9 +33,9 @@ echo "[FRONTEND] Next.js: http://localhost:9771"
echo ""
echo "💡 백엔드 API가 필요하므로 백엔드도 실행되어 있는지 확인하세요."
echo ""
echo "상태 확인: docker-compose -f docker-compose.frontend.mac.yml ps"
echo "로그 확인: docker-compose -f docker-compose.frontend.mac.yml logs -f"
echo "중지하기: docker-compose -f docker-compose.frontend.mac.yml down"
echo "상태 확인: docker-compose -f docker/dev/docker-compose.frontend.mac.yml ps"
echo "로그 확인: docker-compose -f docker/dev/docker-compose.frontend.mac.yml logs -f"
echo "중지하기: docker-compose -f docker/dev/docker-compose.frontend.mac.yml down"
echo ""
echo "============================================"

View File

@ -27,8 +27,8 @@ echo "0. 기존 서비스 정리 중..."
echo "============================================"
# 기존 컨테이너 중지 및 제거 (무시하고 계속)
docker-compose -f docker-compose.backend.linux.yml down -v 2>/dev/null || true
docker-compose -f docker-compose.frontend.linux.yml down -v 2>/dev/null || true
docker-compose -f docker/prod/docker-compose.backend.prod.yml down -v 2>/dev/null || true
docker-compose -f docker/prod/docker-compose.frontend.prod.yml down -v 2>/dev/null || true
# 사용하지 않는 이미지 정리
echo "사용하지 않는 Docker 이미지 정리 중..."
@ -45,10 +45,10 @@ docker network create pms-network 2>/dev/null || echo "네트워크가 이미
# 백엔드 빌드 및 시작
echo "백엔드 이미지 빌드 중..."
docker-compose -f docker-compose.backend.linux.yml build --no-cache
docker-compose -f docker/prod/docker-compose.backend.prod.yml build --no-cache
echo "백엔드 서비스 시작 중..."
docker-compose -f docker-compose.backend.linux.yml up -d
docker-compose -f docker/prod/docker-compose.backend.prod.yml up -d
echo ""
echo "⏳ 백엔드 서비스 안정화 대기 중... (30초)"
@ -56,7 +56,7 @@ sleep 30
# 백엔드 상태 확인
echo "백엔드 서비스 상태 확인:"
docker-compose -f docker-compose.backend.linux.yml ps
docker-compose -f docker/prod/docker-compose.backend.prod.yml ps
# 프론트엔드 시작
echo ""
@ -65,10 +65,10 @@ echo "2. 프론트엔드 서비스 시작 중..."
echo "============================================"
echo "프론트엔드 이미지 빌드 중..."
docker-compose -f docker-compose.frontend.linux.yml build --no-cache
docker-compose -f docker/prod/docker-compose.frontend.prod.yml build --no-cache
echo "프론트엔드 서비스 시작 중..."
docker-compose -f docker-compose.frontend.linux.yml up -d
docker-compose -f docker/prod/docker-compose.frontend.prod.yml up -d
echo ""
echo "⏳ 프론트엔드 서비스 안정화 대기 중... (15초)"
@ -76,7 +76,7 @@ sleep 15
# 프론트엔드 상태 확인
echo "프론트엔드 서비스 상태 확인:"
docker-compose -f docker-compose.frontend.linux.yml ps
docker-compose -f docker/prod/docker-compose.frontend.prod.yml ps
echo ""
echo "============================================"
@ -90,18 +90,18 @@ echo " [FRONTEND] Next.js: http://localhost:5555"
echo ""
echo "🔧 관리 명령어:"
echo " 서비스 상태 확인:"
echo " 백엔드: docker-compose -f docker-compose.backend.linux.yml ps"
echo " 프론트엔드: docker-compose -f docker-compose.frontend.linux.yml ps"
echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml ps"
echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml ps"
echo " 전체: docker ps"
echo ""
echo " 로그 확인:"
echo " 백엔드: docker-compose -f docker-compose.backend.linux.yml logs -f"
echo " 프론트엔드: docker-compose -f docker-compose.frontend.linux.yml logs -f"
echo " 실시간: docker-compose -f docker-compose.backend.linux.yml -f docker-compose.frontend.linux.yml logs -f"
echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml logs -f"
echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml logs -f"
echo " 실시간: docker-compose -f docker/prod/docker-compose.backend.prod.yml -f docker-compose.frontend.linux.yml logs -f"
echo ""
echo " 서비스 중지:"
echo " 백엔드: docker-compose -f docker-compose.backend.linux.yml down"
echo " 프론트엔드: docker-compose -f docker-compose.frontend.linux.yml down"
echo " 백엔드: docker-compose -f docker/prod/docker-compose.backend.prod.yml down"
echo " 프론트엔드: docker-compose -f docker/prod/docker-compose.frontend.prod.yml down"
echo " 전체: ./stop-all-linux.sh"
echo ""
echo " 시스템 모니터링:"

View File

@ -1,81 +0,0 @@
#!/bin/bash
echo "============================================"
echo "PLM 솔루션 - 백엔드 (Spring Boot) 시작 - Linux"
echo "============================================"
echo ""
echo "🚀 Spring Boot 백엔드를 Linux 서버에서 시작합니다..."
echo ""
# 시스템 정보 출력
echo "시스템 정보:"
echo " OS: $(uname -s)"
echo " Architecture: $(uname -m)"
echo " Kernel: $(uname -r)"
echo ""
# Docker 버전 확인
echo "Docker 환경 확인:"
docker --version 2>/dev/null || echo " ❌ Docker가 설치되지 않았습니다."
docker-compose --version 2>/dev/null || echo " ❌ Docker Compose가 설치되지 않았습니다."
echo ""
echo "1. Docker 이미지 빌드 중..."
docker-compose -f docker-compose.backend.linux.yml build --no-cache
echo ""
echo "2. 기존 백엔드 컨테이너 정리 중..."
docker-compose -f docker-compose.backend.linux.yml down -v
echo ""
echo "3. Docker 네트워크 생성 중..."
docker network create pms-network 2>/dev/null || echo "네트워크가 이미 존재합니다."
echo ""
echo "4. 백엔드 컨테이너 시작 중..."
docker-compose -f docker-compose.backend.linux.yml up -d
echo ""
echo "5. 서비스 상태 확인 중..."
sleep 20
echo ""
echo "============================================"
echo "🎉 백엔드 서비스가 시작되었습니다!"
echo "============================================"
echo ""
echo "📊 서비스 접속 정보:"
echo " [DATABASE] PostgreSQL: http://39.117.244.52:11132"
echo " [BACKEND] Spring Boot: http://localhost:8080/api"
echo ""
echo "💡 API 테스트:"
echo " 헬스체크: curl http://localhost:8080/api/actuator/health"
echo ""
echo "🔧 관리 명령어:"
echo " 상태 확인: docker-compose -f docker-compose.backend.linux.yml ps"
echo " 로그 확인: docker-compose -f docker-compose.backend.linux.yml logs -f"
echo " 중지하기: docker-compose -f docker-compose.backend.linux.yml down"
echo ""
echo "============================================"
# 헬스체크
echo ""
echo "🏥 백엔드 헬스체크 수행 중..."
for i in {1..12}; do
if curl -s http://localhost:8080/api/actuator/health >/dev/null 2>&1; then
echo " ✅ 백엔드 서비스 정상"
echo " 📋 헬스체크 결과:"
curl -s http://localhost:8080/api/actuator/health | jq . 2>/dev/null || curl -s http://localhost:8080/api/actuator/health
break
else
echo " ⏳ 백엔드 응답 대기 중... ($i/12)"
sleep 5
fi
done
echo ""
echo "🎯 백엔드 시작 완료! API는 http://localhost:8080/api 에서 확인하세요."
echo ""
read -p "계속하려면 Enter 키를 누르세요..."

View File

@ -1,83 +0,0 @@
#!/bin/bash
echo "============================================"
echo "PLM 솔루션 - 프론트엔드 (Next.js) 시작 - Linux"
echo "============================================"
echo ""
echo "🚀 Next.js 프론트엔드를 Linux 서버에서 시작합니다..."
echo ""
# 시스템 정보 출력
echo "시스템 정보:"
echo " OS: $(uname -s)"
echo " Architecture: $(uname -m)"
echo " Kernel: $(uname -r)"
echo ""
# Docker 버전 확인
echo "Docker 환경 확인:"
docker --version 2>/dev/null || echo " ❌ Docker가 설치되지 않았습니다."
docker-compose --version 2>/dev/null || echo " ❌ Docker Compose가 설치되지 않았습니다."
echo ""
echo "1. Docker 이미지 빌드 중..."
docker-compose -f docker-compose.frontend.linux.yml build --no-cache
echo ""
echo "2. 기존 프론트엔드 컨테이너 정리 중..."
docker-compose -f docker-compose.frontend.linux.yml down -v
echo ""
echo "3. Docker 네트워크 확인 중..."
if ! docker network ls | grep -q pms-network; then
echo "❌ 백엔드가 먼저 실행되지 않았습니다!"
echo "먼저 백엔드를 실행해주세요."
echo ""
read -p "계속하려면 Enter 키를 누르세요..."
exit 1
fi
echo ""
echo "4. 프론트엔드 컨테이너 시작 중..."
docker-compose -f docker-compose.frontend.linux.yml up -d
echo ""
echo "5. 서비스 상태 확인 중..."
sleep 15
echo ""
echo "============================================"
echo "🎉 프론트엔드 서비스가 시작되었습니다!"
echo "============================================"
echo ""
echo "📊 서비스 접속 정보:"
echo " [FRONTEND] Next.js: http://localhost:5555"
echo ""
echo "💡 백엔드 API가 필요하므로 백엔드도 실행되어 있는지 확인하세요."
echo ""
echo "🔧 관리 명령어:"
echo " 상태 확인: docker-compose -f docker-compose.frontend.linux.yml ps"
echo " 로그 확인: docker-compose -f docker-compose.frontend.linux.yml logs -f"
echo " 중지하기: docker-compose -f docker-compose.frontend.linux.yml down"
echo ""
echo "============================================"
# 헬스체크
echo ""
echo "🏥 프론트엔드 헬스체크 수행 중..."
for i in {1..6}; do
if curl -s http://localhost:5555 >/dev/null 2>&1; then
echo " ✅ 프론트엔드 서비스 정상"
break
else
echo " ⏳ 프론트엔드 응답 대기 중... ($i/6)"
sleep 5
fi
done
echo ""
echo "🎯 프론트엔드 시작 완료! 브라우저에서 http://localhost:5555 을 확인하세요."
echo ""
read -p "계속하려면 Enter 키를 누르세요..."