#!/bin/bash # Asset Pilot Docker 빠른 시작 스크립트 set -e echo "🐳 Asset Pilot Docker 설치를 시작합니다..." echo "" # 색상 정의 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # Docker 설치 확인 if ! command -v docker &> /dev/null; then echo -e "${YELLOW}⚠️ Docker가 설치되어 있지 않습니다.${NC}" echo "" echo "Docker를 설치하시겠습니까? (y/n)" read -r INSTALL_DOCKER if [ "$INSTALL_DOCKER" = "y" ] || [ "$INSTALL_DOCKER" = "Y" ]; then echo -e "${BLUE}🐳 Docker 설치 중...${NC}" curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER rm get-docker.sh echo -e "${GREEN}✓ Docker 설치 완료${NC}" echo "" echo -e "${YELLOW}⚠️ 로그아웃 후 다시 로그인하거나 다음 명령을 실행하세요:${NC}" echo " newgrp docker" echo "" echo "그런 다음 이 스크립트를 다시 실행하세요." exit 0 else echo -e "${RED}❌ Docker가 필요합니다. 설치 후 다시 시도하세요.${NC}" exit 1 fi fi echo -e "${GREEN}✓ Docker 확인 완료${NC}" # Docker Compose 확인 if ! docker compose version &> /dev/null; then echo -e "${YELLOW}⚠️ Docker Compose가 설치되어 있지 않습니다.${NC}" echo -e "${BLUE}📦 Docker Compose 설치 중...${NC}" sudo apt-get update sudo apt-get install -y docker-compose-plugin echo -e "${GREEN}✓ Docker Compose 설치 완료${NC}" fi echo -e "${GREEN}✓ Docker Compose 확인 완료${NC}" echo "" # .env 파일 설정 if [ ! -f ".env" ]; then echo -e "${YELLOW}🔐 데이터베이스 비밀번호를 설정하세요${NC}" echo -n "비밀번호 입력: " read -s DB_PASSWORD echo "" cat > .env << EOF # PostgreSQL 데이터베이스 비밀번호 DB_PASSWORD=${DB_PASSWORD} # 선택적 설정 # FETCH_INTERVAL=5 # DEBUG=False EOF chmod 600 .env echo -e "${GREEN}✓ .env 파일 생성 완료${NC}" else echo -e "${YELLOW}⚠️ .env 파일이 이미 존재합니다${NC}" fi echo "" echo -e "${BLUE}🚀 Docker 컨테이너 빌드 및 실행 중...${NC}" echo "" # Docker 이미지 빌드 및 컨테이너 시작 docker compose up -d --build echo "" echo -e "${BLUE}⏳ 데이터베이스 준비 대기 중...${NC}" sleep 10 # 데이터베이스 초기화 echo "" echo -e "${BLUE}🔧 데이터베이스 초기화 중...${NC}" docker compose exec app python init_db.py echo "" echo -e "${GREEN}✅ 설치 완료!${NC}" echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo -e "${GREEN}🌐 접속 정보${NC}" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" # IP 주소 확인 IP_ADDR=$(hostname -I | awk '{print $1}') echo -e "로컬: ${BLUE}http://localhost:8000${NC}" echo -e "네트워크: ${BLUE}http://${IP_ADDR}:8000${NC}" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo "유용한 명령어:" echo " docker compose ps # 컨테이너 상태 확인" echo " docker compose logs -f # 로그 실시간 보기" echo " docker compose restart # 재시작" echo " docker compose down # 중지" echo "" echo "CSV 데이터 가져오기:" echo " docker cp user_assets.csv asset_pilot_app:/app/" echo " docker compose exec app python import_csv.py user_assets.csv" echo ""