228 lines
5.1 KiB
Markdown
228 lines
5.1 KiB
Markdown
# 🐳 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` 참조
|