Files
AssetPilot/asset_pilot_docker/README.md

160 lines
3.4 KiB
Markdown

# Asset Pilot - Docker Edition
🐳 Docker 컨테이너 기반 자산 모니터링 시스템
## 📦 구성
이 프로젝트는 2개의 독립된 Docker 컨테이너로 구성됩니다:
1. **PostgreSQL 컨테이너** (`asset_pilot_db`)
- 데이터베이스 서버
- 포트: 5432
- 볼륨: `postgres_data`
2. **Asset Pilot 앱 컨테이너** (`asset_pilot_app`)
- FastAPI 웹 애플리케이션
- 포트: 8000
- 실시간 데이터 수집 및 제공
## 🚀 빠른 시작
### 자동 설치 (권장)
```bash
# 압축 해제
tar -xzf asset_pilot_docker.tar.gz
cd asset_pilot_docker
# 자동 설치 스크립트 실행
bash start.sh
```
### 수동 설치
```bash
# 1. 환경 변수 설정
nano .env
# DB_PASSWORD를 원하는 비밀번호로 변경
# 2. Docker 컨테이너 시작
docker compose up -d
# 3. 데이터베이스 초기화
docker compose exec app python init_db.py
# 4. 브라우저에서 접속
# http://[IP주소]:8000
```
## 📁 디렉토리 구조
```
asset_pilot_docker/
├── app/ # 애플리케이션 코드
│ ├── calculator.py
│ ├── database.py
│ ├── fetcher.py
│ └── models.py
├── static/ # 정적 파일
│ ├── css/
│ └── js/
├── templates/ # HTML 템플릿
│ └── index.html
├── docker-compose.yml # Docker Compose 설정
├── Dockerfile # 앱 컨테이너 이미지
├── .env # 환경 변수
├── main.py # FastAPI 메인
├── init_db.py # DB 초기화
├── import_csv.py # CSV 가져오기
├── start.sh # 자동 설치 스크립트
└── DOCKER_GUIDE.md # 상세 가이드
```
## 🔧 주요 명령어
### 컨테이너 관리
```bash
# 시작
docker compose up -d
# 중지
docker compose down
# 재시작
docker compose restart
# 상태 확인
docker compose ps
# 로그 보기
docker compose logs -f
```
### 데이터 관리
```bash
# DB 백업
docker compose exec postgres pg_dump -U asset_user asset_pilot > backup.sql
# DB 복원
cat backup.sql | docker compose exec -T postgres psql -U asset_user -d asset_pilot
# CSV 가져오기
docker cp user_assets.csv asset_pilot_app:/app/
docker compose exec app python import_csv.py user_assets.csv
```
## 🌐 접속
```
http://localhost:8000 # 로컬
http://[IP주소]:8000 # 네트워크
```
## 📚 문서
- **DOCKER_GUIDE.md** - Docker 상세 설치 및 관리 가이드
- 문제 해결, 백업, 업데이트 방법 포함
## 🔐 보안
- `.env` 파일에 비밀번호 저장 (권한: 600)
- PostgreSQL은 내부 네트워크만 접근 가능
- 방화벽에서 필요한 포트만 개방
## 🆘 문제 해결
### 컨테이너가 시작되지 않음
```bash
docker compose logs
```
### 데이터베이스 연결 오류
```bash
docker compose exec postgres pg_isready -U asset_user -d asset_pilot
```
### 포트 충돌
```bash
# docker-compose.yml에서 포트 변경
# "8001:8000" 으로 수정
```
## 📊 시스템 요구사항
- Docker 20.10+
- Docker Compose 2.0+
- 최소 2GB RAM
- 최소 5GB 디스크 공간
## 🎯 특징
✅ 독립된 컨테이너로 시스템 격리
✅ 한 번의 명령으로 전체 시스템 실행
✅ 쉬운 백업 및 복구
✅ 업데이트 및 롤백 간편
✅ 개발/프로덕션 환경 일관성
---
**Asset Pilot Docker Edition v1.0**