Files

130 lines
4.0 KiB
Markdown

이걸 postgresql 도커 따로 개발프로그램 실행 도커 따로 이렇게 설치하고 싶은데 과정알려줘
오전 8:10
4개의 파일 생성됨, 명령 4개 실행함
이제 다시 파일들을 생성하겠습니다.
명령 3개 실행함
좋습니다! 이제 Docker 관련 파일들을 추가하겠습니다.
9개의 파일 생성됨, 명령 실행함
이제 프로젝트를 압축하여 제공하겠습니다.
명령 2개 실행함, 파일 생성됨
완벽합니다! 이제 모든 파일을 제공하겠습니다.
Presented 2 files
완료했습니다! 🐳
📦 Docker 버전 제공 완료
제공된 파일
asset_pilot_docker.tar.gz - Docker 기반 전체 패키지
DOCKER_QUICKSTART.md - Docker 빠른 시작 가이드
🐳 Docker 설치 방식의 장점
독립된 컨테이너 구조
PostgreSQL Container (DB) ←→ App Container (FastAPI)
↓ ↓
Volume (postgres_data) Volume (app_logs)
주요 이점:
✅ PostgreSQL과 앱이 별도 컨테이너로 완전 격리
✅ 한 번의 명령으로 전체 시스템 실행
✅ 컨테이너별 독립적 재시작 가능
✅ 볼륨으로 데이터 영구 저장
✅ 백업/복원 매우 간단
✅ 이식성 최고 (다른 서버로 쉽게 이동)
🚀 설치 과정
초간단 설치 (3단계)
bash
# 1. 압축 해제
tar -xzf asset_pilot_docker.tar.gz
cd asset_pilot_docker
# 2. 자동 설치 실행
bash start.sh
# 3. 완료! 접속
# http://[IP]:8000
start.sh 스크립트가 자동으로:
Docker 설치 확인 (없으면 자동 설치)
Docker Compose 확인 (없으면 자동 설치)
비밀번호 입력 받아 .env 파일 생성
PostgreSQL 컨테이너 시작
App 컨테이너 빌드 및 시작
데이터베이스 자동 초기화
접속 URL 안내
🔧 주요 관리 명령어
컨테이너 관리
bash
docker compose up -d # 시작 (백그라운드)
docker compose down # 중지
docker compose ps # 상태 확인
docker compose logs -f # 로그 실시간
docker compose restart app # 앱만 재시작
데이터 관리
bash
# 백업
docker compose exec postgres pg_dump -U asset_user asset_pilot > backup.sql
# 복원
cat backup.sql | docker compose exec -T postgres psql -U asset_user -d asset_pilot
# CSV 가져오기
docker cp user_assets.csv asset_pilot_app:/app/
docker compose exec app python import_csv.py user_assets.csv
📊 컨테이너 구성 상세
PostgreSQL 컨테이너
이미지: postgres:16-alpine (경량)
포트: 5432 (내부 네트워크만)
볼륨: postgres_data (데이터 영구 저장)
헬스체크: 자동 상태 확인
App 컨테이너
이미지: 자체 빌드 (Python 3.11)
포트: 8000 (외부 접근 가능)
의존성: PostgreSQL 준비 완료 후 시작
헬스체크: /health 엔드포인트 확인
🔄 업데이트 방법
bash
# 코드 업데이트 후
docker compose build app # 이미지 재빌드
docker compose up -d app # 앱만 재시작
🔐 보안 설정
PostgreSQL: 내부 네트워크만 접근
.env 파일: 권한 600 (소유자만 읽기/쓰기)
방화벽: 8000번 포트만 개방
비루트 사용자: 컨테이너 내부에서 appuser로 실행
💡 일반 설치 vs Docker 설치
항목 일반 설치 Docker 설치
설치 난이도 중간 (여러 단계) 쉬움 (3단계)
의존성 관리 수동 설치 필요 자동 처리
환경 격리 없음 완벽
백업 수동 (복잡) 간단
업데이트 복잡 쉬움
롤백 어려움 쉬움
이식성 낮음 높음
리소스 가벼움 약간 더 사용
📚 포함된 문서
프로젝트 내부 (압축 해제 후):
README.md - 프로젝트 개요
DOCKER_GUIDE.md - 상세 설치/관리 가이드
docker-compose.yml - 컨테이너 설정
Dockerfile - 앱 이미지 빌드 설정
start.sh - 자동 설치 스크립트
🎯 권장 사용 시나리오
Docker 설치 추천:
✅ 깔끔한 환경 원할 때
✅ 쉬운 백업/복원 필요할 때
✅ 여러 서버에 배포할 때
✅ 컨테이너 기술 선호할 때
일반 설치 추천:
✅ Docker 없는 환경
✅ 최소 리소스 사용
✅ 직접 제어 선호