오늘은 EC2에서 Docker를 사용하는 것이 아니라, 자신의 노트북에서 Docker를 사용해서 테스트를 진행해보는 방법을 다루어볼 것입니다.
방법은 Django에서 Docker와 Docker-Compose 파일을 작성하고, Docker-Compose 파일을 실행해서 배포를 확인하는 방법으로 진행합니다.
먼저 Django 프로젝트를 시작합니다.
아래의 명령어를 사용해서 원하는 위치에 프로젝트를 생성할 수 있습니다.
물론, Django 가 미리 설치가 되어있어야 겠죠?
django-admin.py startproject 프로젝트명
아 참고로, 저는 django-admin이 아니라 뒤에 .py를 붙여야 생성이 되더라구요.
(아직까지 왜 그런지는 원인을 찾지 못했습니다...)
생성 후에는 requirements.txt를 이용해서 Docker에서 참조할 설치 항목들을 작성해줍니다.
저는 위와 같이 작성했는데, 해당 내용은 본인의 프로젝트에 알맞게 작성해주시면 됩니다.
그 후에는 Docker 파일을 생성해줍니다.
VS Code 기준으로 위와 같이 파일 이름을 지정하면 Docker의 상징인 귀여운 고래가 나오는 모습을 확인하실 수 있습니다.
Docker 파일을 위와 같이 작성했습니다.
간단하게 내용을 확인해보면, ENV PYTHONUNBUFFERED 1 을 통해 파이썬 출력 버퍼링을 없애는 설정을 부여할 수 있습니다.
WORKDIR /app 은 /app 폴더로 이동(?) 한다는 의미라고 이해했습니다.
COPY A B 는 A를 B에 복사한다는 의미이고, RUN 은 Docker 이미지를 빌드하는 순간 실행되는 명령어 입니다.
CMD는 이미지로부터 컨테이너를 생성할 때, 최초로 실행하는 명령어입니다.
(Docker 명령어는 추가적인 공부 이후에 다루어보는 시간을 가져보겠습니다.)
Docker 파일을 생성했다면, 이제는 Docker-Compose 파일을 생성해줍니다.
해당 파일로, 여러 개의 컨테이너로부터 이루어진 서비스를 구축하고, 의존관계 등을 설정할 수 있습니다.
위와 같은 이름으로 파일을 생성해줄 수 있는데, Docker 파일과는 다른 색의 고래를 확인할 수 있습니다.
Docker-compose 파일은 위와 같고, 주석을 통해 관련 내용에 대한 설명을 확인하실 수 있습니다.
이제 위와 같은 설정으로 이미지를 생성해서, 그 이미지를 배포할 수 있습니다.
해당 Docker-compose 파일 위치로 이동해서 아래와 같은 명령어를 입력해줍니다.
docker-compose up
위의 명령어를 사용해주면 docker-compose 파일에 작성한 대로 설치 및 실행이 진행됩니다.
cmd 창에 아래와 같이 뜨면 Django 가 실행됬음을 확인하실 수 있습니다.
참고로 Docker 파일을 띄우고, DB에 migration이나 migrate를 하려면, 실행중인 이미지를 종료하지 말고 명령어를 통해, 컨테이너 안으로 들어가서 실행해주어야합니다.
docker-compose exec backend sh
python manage.py makemigrations
python manage.py migrate
위와 같은 방법들로 로컬에서 Docker 파일의 실행 등을 테스트 해보실 수 있습니다. ^^