오늘은 간단하게 django프로젝트를 생성해서 docker를 실행하는 법을 배웠다.
Django 프로젝트 초기화
cd my-project-directory # 평소 하던 프로젝트 경로로 이동하세요.
mkdir django-docker-app
cd django-docker-app
python -m venv venv # 만약 안될시 python3 -m venv venv사용
source venv/bin/activate # Windows: venv\\Scripts\\activate
pip install django==4.2.1 # Docker에서 쓸 Python 버전과 호환이 되는 Django 버전
django-admin startproject myapp .
로컬 서버 실행 확인
python manage.py runserver
브라우저에서 http://127.0.0.1:8000 접속하여 Django 기본 페이지 확인.
Dockerfile 작성
프로젝트 루트 디렉토리에 Dockerfile 생성
# (베이스 이미지)
# python:3.9-slim이라는 이미지를 Docker hub에서 가져옴
FROM python:3.9-slim
# (작업 디렉토리 설정)
# 앞으로 작업할 폴더 생성 & 지정
WORKDIR /app
# (종속성 설치)
# requirements.txt을 WORKDIR로 설정한 app이라는 폴더에 옮겨줌
COPY requirements.txt .
# requirements.txt에 있는 내용 전부 설치
RUN pip install -r requirements.txt
# (소스 코드 복사)
# 지금 폴더를 컨테이너에 전부 복사
COPY . .
# (포트 노출)
EXPOSE 8000
# (명령 실행)
# python manage.py runserver 0.0.0.0:8000 명령어를 컨테이너에서 실행
# 0.0.0.0은 외부에 연결 가능한 것을 의미
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
requirements.txt 생성
pip freeze > requirements.txt
Docker 이미지 빌드 및 실행
- 이미지 빌드 :
docker build -t django-app .
설명 : 지금 경로( . )를 django-app 이라는 이름( -t )으로 빌드( build ) 해줘.
- 컨테이너 실행 :
docker run -d -p 8000:8000 django-app
설명 : django-app 이라는 컨테이너를 컨테이너로 실행 ( run ). 내 컴퓨터에서 8000 포트로 접속하면, 컨테이너의 8000포트로 연결( -p 8000:8000 ). 대신에, 터미널에서는 detach ( -d ) 하도록해.
- 브라우저에서 http://127.0.0.1:8000 접속
Docker 와 Django 의 통합 이점
1. 새로운 개발자 온보딩 간소화
- 개발 환경 설정이 쉽고 빠르다.
- 백엔드 개발자나 다른 AI개발자에게 "깃헙에 있는 Dockerfile로 도커 빌드를 실행하세요" 한 줄로 환경 구축 완료
2. 서버 환경 간 호환성 문제 해결
- 운영 체제나 설정이 다른 서버에서도 동일한 결과를 보장
3. 애플리케이션 격리
- Django 프로젝트가 다른 프로젝트와 독립적으로 실행
- 동일 머신에서 여러 프로젝트 실행 가능. -> docker-compose랑 연결
4. 자동화된 배포
- Docker 이미지를 활용한 CI/CD (지속적 통합 및 배포) 프로세스 구축
'Coding > TIL & 배운것들' 카테고리의 다른 글
Django를 사용하는 이유? (0) | 2024.12.13 |
---|---|
ERD 특강정리 (0) | 2024.12.12 |
도커(Docker) (0) | 2024.12.10 |
CI / CD (0) | 2024.12.09 |
12/06 베이직반 수업정리 (0) | 2024.12.06 |