# ๐Ÿณ 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` ์ฐธ์กฐ