5.1 KiB
5.1 KiB
🐳 Asset Pilot Docker 빠른 시작
1️⃣ 파일 전송 (Orange Pi로)
# Windows PowerShell 또는 Linux/Mac 터미널에서
scp asset_pilot_docker.tar.gz orangepi@192.168.1.100:~/
2️⃣ Orange Pi에서 설치
# SSH 접속
ssh orangepi@192.168.1.100
# 압축 해제
tar -xzf asset_pilot_docker.tar.gz
cd asset_pilot_docker
# 자동 설치 (Docker가 없으면 자동으로 설치함)
bash start.sh
설치 스크립트가 자동으로 처리:
- ✅ Docker 설치 확인 및 설치
- ✅ 비밀번호 설정
- ✅ 컨테이너 빌드 및 실행
- ✅ 데이터베이스 초기화
3️⃣ 접속
http://[Orange_Pi_IP]:8000
예: http://192.168.1.100:8000
📦 Docker 컨테이너 구조
┌─────────────────────────────────────────┐
│ Orange Pi 5 Plus (Ubuntu) │
│ │
│ ┌──────────────────────────────────┐ │
│ │ Docker Network │ │
│ │ │ │
│ │ ┌────────────┐ ┌────────────┐ │ │
│ │ │ PostgreSQL │ │ App │ │ │
│ │ │ Container │ │ Container │ │ │
│ │ │ │ │ │ │ │
│ │ │ Port 5432 │←→│ FastAPI │ │ │
│ │ │ │ │ Port 8000 │ │ │
│ │ └────────────┘ └────────────┘ │ │
│ │ ↓ ↓ │ │
│ │ [Volume] [Volume] │ │
│ │ postgres_data app_logs │ │
│ └──────────────────────────────────┘ │
│ ↑ │
│ Port 8000 (외부 접근) │
└─────────────────────────────────────────┘
🔧 주요 명령어
컨테이너 관리
# 전체 시작
docker compose up -d
# 전체 중지
docker compose down
# 상태 확인
docker compose ps
# 로그 보기 (실시간)
docker compose logs -f
특정 컨테이너만 제어
# 앱만 재시작
docker compose restart app
# DB만 재시작
docker compose restart postgres
# 앱 로그만 보기
docker compose logs -f app
💾 Windows 데이터 가져오기
기존 user_assets.csv 파일이 있다면:
# 1. CSV 파일을 컨테이너로 복사
docker cp user_assets.csv asset_pilot_app:/app/
# 2. 가져오기 실행
docker compose exec app python import_csv.py user_assets.csv
🔄 백업 및 복원
백업 생성
# 데이터베이스 백업
docker compose exec postgres pg_dump -U asset_user asset_pilot > backup_$(date +%Y%m%d).sql
백업 복원
# 백업 파일 복원
cat backup_20260210.sql | docker compose exec -T postgres psql -U asset_user -d asset_pilot
🛠️ 문제 해결
컨테이너가 시작되지 않음
# 로그 확인
docker compose logs
# 특정 서비스 로그
docker compose logs app
docker compose logs postgres
Docker가 설치되지 않음
# Docker 자동 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker # 또는 로그아웃 후 재로그인
포트가 이미 사용 중
# docker-compose.yml 파일 편집
nano docker-compose.yml
# ports 섹션 수정
# "8001:8000" # 8000 대신 8001 사용
🗑️ 완전 삭제
# 컨테이너 + 볼륨 모두 삭제
docker compose down -v
# 이미지도 삭제
docker rmi asset_pilot_docker-app postgres:16-alpine
📱 모바일/태블릿 접속
- 같은 Wi-Fi에 연결
- 브라우저에서
http://[IP]:8000접속 - 홈 화면에 추가 → 앱처럼 사용!
🔐 보안 팁
# .env 파일 권한 설정
chmod 600 .env
# 방화벽 설정
sudo ufw allow 8000/tcp
sudo ufw enable
# PostgreSQL 외부 접근 차단 (기본값 유지)
# docker-compose.yml에서 5432 포트를 127.0.0.1:5432:5432로 변경
✅ 설치 확인 체크리스트
- Docker 설치됨 (
docker --version) - 프로젝트 압축 해제됨
.env파일 비밀번호 설정됨docker compose up -d실행됨- 컨테이너 실행 중 (
docker compose ps) - DB 초기화 완료
- 웹 접속 가능 (
http://[IP]:8000)
🎯 장점 요약
| 기능 | 일반 설치 | Docker 설치 |
|---|---|---|
| 설치 복잡도 | 중간 | 매우 쉬움 |
| 환경 격리 | 없음 | 완벽 |
| 백업/복원 | 수동 | 간단 |
| 업데이트 | 복잡 | 쉬움 |
| 이식성 | 낮음 | 높음 |
| 롤백 | 어려움 | 쉬움 |
모든 준비 완료! 투자 모니터링을 시작하세요! 💰
상세한 내용은 DOCKER_GUIDE.md 참조