Asset Pilot - Docker Edition
🐳 Docker 컨테이너 기반 자산 모니터링 시스템
📦 구성
이 프로젝트는 2개의 독립된 Docker 컨테이너로 구성됩니다:
-
PostgreSQL 컨테이너 (
asset_pilot_db)- 데이터베이스 서버
- 포트: 5432
- 볼륨:
postgres_data
-
Asset Pilot 앱 컨테이너 (
asset_pilot_app)- FastAPI 웹 애플리케이션
- 포트: 8000
- 실시간 데이터 수집 및 제공
🚀 빠른 시작
자동 설치 (권장)
# 압축 해제
tar -xzf asset_pilot_docker.tar.gz
cd asset_pilot_docker
# 자동 설치 스크립트 실행
bash start.sh
수동 설치
# 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 # 상세 가이드
🔧 주요 명령어
컨테이너 관리
# 시작
docker compose up -d
# 중지
docker compose down
# 재시작
docker compose restart
# 상태 확인
docker compose ps
# 로그 보기
docker compose logs -f
데이터 관리
# 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은 내부 네트워크만 접근 가능
- 방화벽에서 필요한 포트만 개방
🆘 문제 해결
컨테이너가 시작되지 않음
docker compose logs
데이터베이스 연결 오류
docker compose exec postgres pg_isready -U asset_user -d asset_pilot
포트 충돌
# docker-compose.yml에서 포트 변경
# "8001:8000" 으로 수정
📊 시스템 요구사항
- Docker 20.10+
- Docker Compose 2.0+
- 최소 2GB RAM
- 최소 5GB 디스크 공간
🎯 특징
✅ 독립된 컨테이너로 시스템 격리
✅ 한 번의 명령으로 전체 시스템 실행
✅ 쉬운 백업 및 복구
✅ 업데이트 및 롤백 간편
✅ 개발/프로덕션 환경 일관성
Asset Pilot Docker Edition v1.0