130 lines
4.0 KiB
Markdown
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 없는 환경
|
|
✅ 최소 리소스 사용
|
|
✅ 직접 제어 선호 |