Skip to content

도커 기반 팀 협업 가이드 #4

@inoaole

Description

@inoaole

🐳 [Infra] 도커(Docker) 기반 프로젝트 실행 및 협업 가이드

본 프로젝트는 Docker를 사용하여 개발 환경을 통일했습니다. 환경 차이로 인한 오류를 방지하고 일관된 개발 흐름을 유지하기 위해 아래 가이드를 준수합니다.

1️⃣ 작업 시작 루틴 (Daily Workflow)

작업을 시작하거나 원격 저장소의 코드를 가져온 후에는 항상 아래 순서대로 환경을 갱신합니다.

  1. 최신 코드 확보

    git pull origin develop
    
  2. 환경 업데이트 및 실행

    docker-compose up --build -d
    
    • 라이브러리 추가나 설정 변경 사항을 반영하기 위해 --build 옵션 사용을 권장합니다.

  3. DB 마이그레이션 반영

    docker-compose run --rm backend-core python manage.py migrate
    
    • 모델 변경 사항이 있을 경우 로컬 데이터베이스에도 반영해야 에러를 방지할 수 있습니다.

2️⃣ 라이브러리 추가 및 업데이트 (Dependencies)

새로운 파이썬 패키지를 설치하거나 버전을 변경할 때의 절차입니다.

  1. 파일 수정: 해당 서비스 폴더(backend-core 또는 backend-chat)의 requirements.txt에 패키지명을 추가합니다.

  2. 변경 공지: 의존성 파일이 수정되었음을 프로젝트 공유 채널에 알립니다.

  3. 환경 갱신: 업데이트 소식을 확인하면 git pull 이후 반드시 docker-compose up --build -d를 실행하여 컨테이너 내부 환경을 동기화합니다.

3️⃣ 데이터베이스 모델 수정 (Database Migrations)

Django 모델(Model)을 수정하거나 생성했을 때의 절차입니다.

  1. 마이그레이션 파일 생성 (수정자)

    docker-compose run --rm backend-core python manage.py makemigrations
    
    • 생성된 마이그레이션 파일(000x_...)을 코드와 함께 커밋하여 Push합니다.

  2. DB 스키마 반영 (공통)

    docker-compose run --rm backend-core python manage.py migrate
    

4️⃣ 환경 변수 관리 (.env)

  • 보안: .env 파일은 보안을 위해 절대 Git에 업로드하지 않습니다.

  • 공유: 새로운 환경 변수(API 키 등)가 추가되면 별도의 보안 채널을 통해 공유합니다.

  • 적용: 공유받은 내용을 로컬 .env에 추가한 뒤 서비스를 재시작합니다.

    docker-compose restart [서비스명]
    

🛠️ 주요 도커 명령어 치트시트

상황 | 명령어 -- | -- 서버 로그 실시간 확인 | docker-compose logs -f [서비스명] 서비스 중지 (컨테이너 유지) | docker-compose stop 서비스 종료 (컨테이너 삭제) | docker-compose down DB 포함 완전 초기화 | docker-compose down -v (※ 데이터 삭제 주의) 컨테이너 내부 셸 접속 | docker-compose exec [서비스명] /bin/bash

🚀 로컬 접속 주소 (Access)

비고: 실행 중 포트 충돌이나 이미지 빌드 에러가 발생할 경우 해당 이슈에 댓글을 남겨주세요.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions