Photo by Chema Photo on Unsplash
오늘은 djnago프로젝트를 docker를 이용해 aws서버에 배포하는 과정을 간단하게 다뤄보겠다.
가능하다면 가볍게 컨테이너에 띄우는 것부터 github action을 통한 ci/cd까지 시리즈로 정리해보려고 한다.
우선 도커파일을 프로젝트폴더에 만들어준다.(manage.py가 있는 폴더 꼭 이 곳일 필요는 없지만 굳이 workdir 구문을 추가로 써가며 다른 폴더에 둘 이유를 찾지 못함)
내가 만든 도커파일은 다음과 같다.
FROM python:3.10-slim-buster
ENV PYTHONUNBUFFERED = 1
RUN mkdir /app
WORKDIR /app
COPY requirements.txt /app/
RUN pip install -r requirements.txt
COPY . /app/
CMD python manage.py runserver o.o.o.o:8000
혹은
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
도커파일을 한 줄 한 줄 훑어보자.
이제 터미널창에 테스트를 위해서 django-test라는 이름으로 latest태그를 달아서 이미지를 빌드해본다.
docker build -t django-test:latest .
그 후에 도커 런을 통해서 장고 테스트 이미지가 컨테이너에 잘 띄워지는지 확인해본다.
docker run -p 80:8000 django-test:latest
-p 이후에 적은 코드는 80번 포트로 들어온 요청을 8000번으로 리디렉션하겠다는 의미로 http://localhost에 접속하면 장고의 로켓 페이지를 볼 수 있다.
오늘은 도커파일을 작성하며 한 줄 한 줄 뜯어보는 시간을 가졌다. 내일은 간단한 docker-compose.yml 파일을 만들어서 compose 명령어를 통해 컨테이너에 이미지를 띄우고 runserver가 아닌 구니콘을 통해서 8000번 포트에 접근하려고 한다.