Files
AssetPilot/.TemporaryDocument/DOCKER_QUICKSTART.md

228 lines
5.1 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐳 Asset Pilot Docker 빠른 시작
## 1⃣ 파일 전송 (Orange Pi로)
```bash
# Windows PowerShell 또는 Linux/Mac 터미널에서
scp asset_pilot_docker.tar.gz orangepi@192.168.1.100:~/
```
---
## 2⃣ Orange Pi에서 설치
```bash
# 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 (외부 접근) │
└─────────────────────────────────────────┘
```
---
## 🔧 주요 명령어
### 컨테이너 관리
```bash
# 전체 시작
docker compose up -d
# 전체 중지
docker compose down
# 상태 확인
docker compose ps
# 로그 보기 (실시간)
docker compose logs -f
```
### 특정 컨테이너만 제어
```bash
# 앱만 재시작
docker compose restart app
# DB만 재시작
docker compose restart postgres
# 앱 로그만 보기
docker compose logs -f app
```
---
## 💾 Windows 데이터 가져오기
기존 `user_assets.csv` 파일이 있다면:
```bash
# 1. CSV 파일을 컨테이너로 복사
docker cp user_assets.csv asset_pilot_app:/app/
# 2. 가져오기 실행
docker compose exec app python import_csv.py user_assets.csv
```
---
## 🔄 백업 및 복원
### 백업 생성
```bash
# 데이터베이스 백업
docker compose exec postgres pg_dump -U asset_user asset_pilot > backup_$(date +%Y%m%d).sql
```
### 백업 복원
```bash
# 백업 파일 복원
cat backup_20260210.sql | docker compose exec -T postgres psql -U asset_user -d asset_pilot
```
---
## 🛠️ 문제 해결
### 컨테이너가 시작되지 않음
```bash
# 로그 확인
docker compose logs
# 특정 서비스 로그
docker compose logs app
docker compose logs postgres
```
### Docker가 설치되지 않음
```bash
# Docker 자동 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker # 또는 로그아웃 후 재로그인
```
### 포트가 이미 사용 중
```bash
# docker-compose.yml 파일 편집
nano docker-compose.yml
# ports 섹션 수정
# "8001:8000" # 8000 대신 8001 사용
```
---
## 🗑️ 완전 삭제
```bash
# 컨테이너 + 볼륨 모두 삭제
docker compose down -v
# 이미지도 삭제
docker rmi asset_pilot_docker-app postgres:16-alpine
```
---
## 📱 모바일/태블릿 접속
1. 같은 Wi-Fi에 연결
2. 브라우저에서 `http://[IP]:8000` 접속
3. **홈 화면에 추가** → 앱처럼 사용!
---
## 🔐 보안 팁
```bash
# .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` 참조