Files
AssetPilot/.TemporaryDocument/DOCKER_QUICKSTART.md

5.1 KiB
Raw Permalink Blame History

🐳 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

📱 모바일/태블릿 접속

  1. 같은 Wi-Fi에 연결
  2. 브라우저에서 http://[IP]:8000 접속
  3. 홈 화면에 추가 → 앱처럼 사용!

🔐 보안 팁

# .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 참조