128 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			128 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								# Docker 배포 가이드
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								이 프로젝트는 Docker를 사용하여 컨테이너화할 수 있습니다.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 사전 요구사항
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- Docker Desktop 설치
							 | 
						||
| 
								 | 
							
								- Docker Compose 설치 (Docker Desktop에 포함됨)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 빠른 시작
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 1. 도커 이미지 빌드 및 실행
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# 프로젝트 루트 디렉토리에서
							 | 
						||
| 
								 | 
							
								docker-compose up --build
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 2. 백그라운드에서 실행
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker-compose up -d --build
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 3. 컨테이너 중지
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker-compose down
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 수동 도커 명령어
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 이미지 빌드
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker build -t nuxt-app .
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 컨테이너 실행
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -p 3000:3000 nuxt-app
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 백그라운드에서 실행
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -d -p 3000:3000 --name nuxt-container nuxt-app
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 환경 변수 설정
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								필요한 경우 환경 변수를 설정할 수 있습니다:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -p 3000:3000 \
							 | 
						||
| 
								 | 
							
								  -e NODE_ENV=production \
							 | 
						||
| 
								 | 
							
								  -e API_URL=https://api.example.com \
							 | 
						||
| 
								 | 
							
								  nuxt-app
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								또는 `.env` 파일을 사용:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -p 3000:3000 --env-file .env nuxt-app
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 프로덕션 배포
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 1. 이미지 태그 지정
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker build -t your-registry/nuxt-app:latest .
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 2. 이미지 푸시
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker push your-registry/nuxt-app:latest
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 3. 프로덕션 서버에서 실행
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker pull your-registry/nuxt-app:latest
							 | 
						||
| 
								 | 
							
								docker run -d -p 3000:3000 your-registry/nuxt-app:latest
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 문제 해결
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 포트 충돌
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								다른 포트를 사용하려면:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -p 8080:3000 nuxt-app
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 볼륨 마운트 (개발용)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								소스 코드 변경사항을 실시간으로 반영하려면:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								docker run -p 3000:3000 -v $(pwd):/app nuxt-app
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 로그 확인
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```bash
							 | 
						||
| 
								 | 
							
								# docker-compose 사용 시
							 | 
						||
| 
								 | 
							
								docker-compose logs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 수동 실행 시
							 | 
						||
| 
								 | 
							
								docker logs <container-id>
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 보안 고려사항
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- 프로덕션에서는 non-root 사용자로 실행됩니다
							 | 
						||
| 
								 | 
							
								- 필요한 포트만 노출됩니다
							 | 
						||
| 
								 | 
							
								- 민감한 정보는 환경 변수로 관리하세요
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## 성능 최적화
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- 멀티스테이지 빌드를 사용하여 이미지 크기를 최소화했습니다
							 | 
						||
| 
								 | 
							
								- 프로덕션 의존성만 설치합니다
							 | 
						||
| 
								 | 
							
								- 캐시를 정리하여 이미지 크기를 줄입니다
							 |